PM Skills Plugin Version Compatibility with AI Assistants: A Complete Guide
PM Skills achieves universal AI assistant compatibility through markdown-based skills that require no runtime dependencies, while maintaining a single synchronized version across all nine plugins that any assistant can parse programmatically.
The phuryn/pm-skills repository functions as a marketplace of nine independent plugins exposing 68 skills and 42 commands. Understanding how version compatibility works requires examining the architectural separation between static skill definitions and runtime command implementations, along with the strict versioning policies enforced by the repository's validation tooling.
Understanding the PM Skills Architecture
The repository organizes functionality into two distinct layers that determine compatibility boundaries.
Skills vs Commands
Skills are static knowledge modules stored as SKILL.md files under each plugin's skills/ directory. These files contain declarative front-matter and explanatory text that any AI assistant capable of reading markdown can ingest. According to the repository documentation, "Skills compatible with other AI assistants" while "Commands (/slash-commands) are Claude-specific" [README.md](https://github.com/phuryn/pm-skills/blob/main/README.md#L15-L16).
Commands (*.md files under commands/ folders) implement runtime workflows using Claude's slash-command syntax. While these provide convenient access for Claude users, they represent only a thin wrapper over the underlying skills.
The Single Version Strategy
All nine plugins share a single marketplace version enforced across multiple files. The CLAUDE.md specification mandates: "The newest ## vX.Y.Z heading is the released version… marketplace.json, all 9 plugin.json files, and the newest CHANGELOG heading always carry the same version" [CLAUDE.md](https://github.com/phuryn/pm-skills/blob/main/CLAUDE.md#L73-L77). This eliminates version drift and ensures any AI assistant loading the skill set encounters a consistent API surface.
How Skills Achieve Universal AI Assistant Compatibility
The skill format relies on universal markdown rather than binary executables or assistant-specific runtimes. Because a skill contains only declarative front-matter and explanatory text, no versioned binary or runtime dependency is required.
This design means:
- ChatGPT, Claude, Gemini, or custom local models can parse
SKILL.mdfiles identically - No plugin references another plugin, preventing hidden dependency chains [
CLAUDE.md](https://github.com/phuryn/pm-skills/blob/main/CLAUDE.md#L49-L55) - Skills remain backward-compatible regardless of the assistant's own version
Claude-Specific Commands and Cross-Platform Adaptation
While commands target Claude's slash-command syntax, they remain optional for other assistants. The command files simply reference skills within the same plugin, meaning:
- Generic assistants can ignore command files and load skills directly
- Developers can translate Claude commands to their assistant's native framework (e.g., ChatGPT GPTs, custom CLI tools) without modifying the underlying skill content
- Version compatibility remains intact because the skill payload—the actual knowledge—never changes
Version Synchronization and SemVer Policy
The repository follows Semantic Versioning (SemVer) with strict enforcement:
- Major bump for breaking changes
- Minor for new skills/commands
- Patch for fixes [
CLAUDE.md](https://github.com/phuryn/pm-skills/blob/main/CLAUDE.md#L78-L79)
The validate_plugins.py script enforces these rules in CI, ensuring the marketplace.json manifest and all nine plugin.json files remain synchronized. This guarantees that programmatic version checks return consistent results regardless of which plugin file an assistant parses.
Runtime-Agnostic Design Principles
The "No cross-plugin references" rule [CLAUDE.md](https://github.com/phuryn/pm-skills/blob/main/CLAUDE.md#L49-L55) ensures complete isolation between plugins. Installing a subset of plugins for a particular assistant never creates hidden dependencies or version conflicts. Each plugin functions as a standalone knowledge module, with the global version serving only as a compatibility marker rather than a linking mechanism.
Practical Implementation Examples
Inspect the Marketplace Version Programmatically
Any AI assistant can verify compatibility by reading the centralized manifest:
import json, urllib.request
# Fetch the marketplace manifest
url = "https://raw.githubusercontent.com/phuryn/pm-skills/main/.claude-plugin/marketplace.json"
manifest = json.loads(urllib.request.urlopen(url).read())
print("PM Skills version:", manifest["version"])
Result: PM Skills version: 1.4.2 (example) – the same version appears in all plugin assets.
Load a Skill File Directly
This Node.js example works in any environment that can fetch markdown:
const fetch = require('node-fetch');
async function loadSkill(name) {
const url = `https://raw.githubusercontent.com/phuryn/pm-skills/main/pm-toolkit/skills/${name}/SKILL.md`;
const res = await fetch(url);
const text = await res.text();
console.log(text.slice(0, 200)); // preview the skill description
}
loadSkill('review-resume');
No Claude runtime is required; the skill content is pure markdown.
Translate Commands for Other Assistants
While Claude uses slash-commands, other assistants can wrap the same functionality:
# Original Claude command (Claude-only)
claude plugin install pm-toolkit@pm-skills
# Generic wrapper for another assistant
myassistant plugin add pm-toolkit --source https://github.com/phuryn/pm-skills
The wrapper points to the same repository; the underlying SKILL.md files remain unchanged and fully compatible.
Summary
- Skills use universal markdown compatible with any AI assistant, while commands are Claude-specific but optional.
- One global version (stored in
marketplace.jsonand enforced byvalidate_plugins.py) ensures consistency across all nine plugins. - No cross-plugin dependencies allow selective installation without version conflicts.
- Semantic Versioning provides clear compatibility signals for programmatic version checking.
- Any assistant can parse the manifest and load skills directly without requiring Claude's runtime.
Frequently Asked Questions
Are PM Skills compatible with ChatGPT or other AI assistants?
Yes. The skills/*/SKILL.md files follow a universal markdown format that any AI assistant can read. The README explicitly states that skills are "compatible with other AI assistants" while only the slash-commands remain Claude-specific. Because skills contain only declarative text and front-matter, assistants like ChatGPT, Gemini, or local LLMs can ingest them without modification.
How do I check the current PM Skills version programmatically?
Parse the .claude-plugin/marketplace.json file, which contains the single source of truth for version compatibility. The validate_plugins.py CI script ensures this version matches all nine plugin.json files and the CHANGELOG.md heading. Fetching this JSON file provides the authoritative version string (e.g., "1.4.2") that applies to the entire marketplace.
Can I use PM Skills commands with assistants other than Claude?
Commands require manual translation, but the underlying skills remain fully functional. The command files (commands/*.md) implement Claude's slash-command syntax, but they merely reference skills within the same plugin. You can ignore these command files and load the SKILL.md content directly, or create a wrapper in your assistant's native framework that points to the same skill repository.
What happens when a new version of PM Skills is released?
The repository maintains a single marketplace version synchronized across the manifest, all plugin configurations, and the changelog. When developers publish a new version, the validate_plugins.py script verifies that marketplace.json, all nine plugin.json files, and the newest CHANGELOG.md heading carry identical version numbers. This ensures that any AI assistant checking the version programmatically receives consistent compatibility information regardless of which file it reads.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →