Skill Loading Mechanisms in PM Skills Marketplace: A Complete Guide

PM Skills Marketplace uses a multi-tiered loading system that combines automatic topic-matching based on trigger phrases in SKILL.md front-matter with explicit force-load syntax via plugin prefixes or short names to control when Claude loads specific skills.

The PM Skills Marketplace repository (phuryn/pm-skills) implements a sophisticated skill loading architecture designed to keep prompts lightweight while ensuring precise activation. Understanding these skill loading mechanisms is essential for developers integrating with the marketplace or users seeking deterministic control over skill invocation. The system operates through five distinct mechanisms that work together to balance automatic discovery with explicit user control.

How Skill Loading Works in PM Skills Marketplace

At its core, the marketplace treats skills as reusable prompts that power each command. According to CLAUDE.md, skills are defined as "nouns/concepts" that Claude auto-loads when relevant. The loading logic enforces a strict separation between lightweight metadata and heavy content, ensuring that only necessary skills enter the context window.

The architecture relies on two primary modes: automatic loading via topic matching and force loading via explicit syntax. Both modes depend on the marketplace manifest and carefully structured SKILL.md files across plugin directories.

Automatic Skill Loading via Topic Matching

The default behavior for all skills in the marketplace uses topic-matching auto-load. When a user's message contains a trigger phrase that appears in a skill's description field—located in the front-matter of SKILL.md—Claude automatically loads that skill.

For example, in pm-product-strategy/skills/swot-analysis/SKILL.md, the front-matter contains a concise description that acts as the trigger:

---
description: "SWOT analysis"
---

# SWOT Analysis Skill

[Heavy content here...]

When a user asks, "Can you run a SWOT analysis on my new product?", Claude detects the trigger phrase in the description and loads the skill automatically. This mechanism ensures skills appear only when contextually relevant, keeping the initial prompt lightweight.

Force-Loading Skills for Deterministic Activation

When trigger phrases are absent or users require specific skill activation, the marketplace supports two force-load syntaxes defined in README.md.

Plugin Prefix Syntax

Users can force-load a skill by prefixing the command with the plugin name followed by a colon. This bypasses the auto-load heuristics entirely.

/pm-ai-shipping:ship-check

In this example, Claude ignores message content analysis and directly loads the skill from the pm-ai-shipping plugin, specifically targeting the command defined in pm-ai-shipping/commands/ship-check.md.

Short Skill Name Syntax

A shorthand version using only the skill name also forces loading. This is particularly useful in chat contexts where users want specific skills without typing the full plugin path.

/swot-analysis

Claude resolves this short name to the appropriate plugin by consulting the marketplace manifest and loads the skill immediately.

Performance Optimization Through Front-Matter Design

The CLAUDE.md file specifies a critical optimization: keep front-matter lean. Each SKILL.md file deliberately maintains a minimal front-matter containing only the description field, while the heavy-weight content remains in the document body.

This design ensures that Claude only pulls in the full skill content once the loading decision is made. During the initial auto-load check, Claude scans only the lightweight front-matter for trigger phrases, significantly speeding up the decision process and reducing token consumption.

Marketplace Discovery and Manifest Structure

The global marketplace index resides in .claude-plugin/marketplace.json. This JSON file lists every plugin and its associated skills, mapping trigger phrases to their respective plugin paths. Claude scans this manifest at startup to build the lookup table required for auto-load decisions and short-name resolution.

Individual plugin manifests, such as pm-toolkit/.claude-plugin/plugin.json and pm-ai-shipping/.claude-plugin/plugin.json, define the specific commands and their mappings to skills. When a command like /ship-check executes, it may internally reference a skill's trigger phrase, causing Claude to auto-load the shipping-artifacts skill during command execution.

Practical Usage Examples

Below are concrete implementations of the different loading mechanisms available in the PM Skills Marketplace:

1. Auto-load via natural language trigger:

User: "Can you run a SWOT analysis on my new product?"
Result: Claude sees "SWOT analysis" in the description of 
`pm-product-strategy/skills/swot-analysis/SKILL.md` and loads automatically.

2. Force-load with plugin prefix:

/pm-product-strategy:swot-analysis

Claude bypasses trigger phrase detection and loads the skill directly from the specified plugin.

3. Force-load with short name:

/swot-analysis

Claude resolves the short name against the marketplace manifest and loads the corresponding skill.

4. Command-driven skill loading:

/ship-check [upload codebase]

Executing this command from pm-ai-shipping/commands/ship-check.md causes Claude to auto-load the shipping-artifacts skill because the command's internal logic references that skill's trigger phrase.

Summary

  • Topic-matching auto-load scans the description field in SKILL.md front-matter to trigger automatic loading when users mention relevant concepts.
  • Force-load syntax using plugin prefixes (/plugin:skill) or short names (/skill) bypasses auto-detection for deterministic activation.
  • Front-matter minimization keeps only the description field in metadata, deferring heavy content to the body until after loading decisions.
  • Marketplace manifest at .claude-plugin/marketplace.json provides the global index Claude uses to resolve plugin locations and skill mappings.
  • Command references can trigger skill loading internally when command definitions reference skill trigger phrases.

Frequently Asked Questions

How does Claude determine which skill to load automatically?

Claude analyzes user messages for trigger phrases that match the description field in a skill's SKILL.md front-matter. When a match is detected—such as "SWOT analysis" appearing in both the user message and the skill description—Claude automatically loads that skill from the repository. This mechanism is defined in CLAUDE.md and enforced by the interpreter at runtime.

What is the difference between using a plugin prefix and a short skill name?

The plugin prefix (/pm-ai-shipping:ship-check) explicitly specifies both the plugin and skill, eliminating ambiguity when multiple plugins contain skills with similar names. The short skill name (/ship-check) relies on the marketplace manifest to resolve which plugin contains the requested skill, offering convenience when skill names are unique across the marketplace. Both methods force immediate loading regardless of message content.

Why does the SKILL.md front-matter need to stay minimal?

According to CLAUDE.md, keeping front-matter lean (containing only the description field) optimizes performance by reducing the data Claude must scan during the auto-load decision phase. Heavy content resides in the document body, which Claude only pulls into the context window after confirming the skill needs loading based on the lightweight front-matter trigger.

Where does the marketplace store the global index of all available skills?

The global marketplace index is stored in .claude-plugin/marketplace.json at the repository root. This file contains a complete listing of every plugin, their respective skills, and associated trigger phrases. Claude scans this manifest at startup to build the internal lookup tables necessary for auto-load detection and short-name resolution.

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:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →