# Skill Loading Mechanisms in PM Skills Marketplace: A Complete Guide

> Discover the skill loading mechanisms in PM Skills Marketplace. Learn how automatic topic matching and explicit force-load syntax work to control skill loading.

- Repository: [Pawel Huryn/pm-skills](https://github.com/phuryn/pm-skills)
- Tags: how-to-guide
- Published: 2026-07-04

---

**PM Skills Marketplace uses a multi-tiered loading system that combines automatic topic-matching based on trigger phrases in [`SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/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`](https://github.com/phuryn/pm-skills/blob/main/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`](https://github.com/phuryn/pm-skills/blob/main/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`](https://github.com/phuryn/pm-skills/blob/main/SKILL.md)—Claude automatically loads that skill.

For example, in [`pm-product-strategy/skills/swot-analysis/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/pm-product-strategy/skills/swot-analysis/SKILL.md), the front-matter contains a concise description that acts as the trigger:

```markdown
---
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`](https://github.com/phuryn/pm-skills/blob/main/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.

```bash
/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`](https://github.com/phuryn/pm-skills/blob/main/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.

```bash
/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`](https://github.com/phuryn/pm-skills/blob/main/CLAUDE.md) file specifies a critical optimization: **keep front-matter lean**. Each [`SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/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`](https://github.com/phuryn/pm-skills/blob/main/.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`](https://github.com/phuryn/pm-skills/blob/main/pm-toolkit/.claude-plugin/plugin.json) and [`pm-ai-shipping/.claude-plugin/plugin.json`](https://github.com/phuryn/pm-skills/blob/main/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:**

```markdown
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:**

```bash
/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:**

```bash
/swot-analysis

```

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

**4. Command-driven skill loading:**

```bash
/ship-check [upload codebase]

```

Executing this command from [`pm-ai-shipping/commands/ship-check.md`](https://github.com/phuryn/pm-skills/blob/main/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`](https://github.com/phuryn/pm-skills/blob/main/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`](https://github.com/phuryn/pm-skills/blob/main/.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`](https://github.com/phuryn/pm-skills/blob/main/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`](https://github.com/phuryn/pm-skills/blob/main/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`](https://github.com/phuryn/pm-skills/blob/main/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`](https://github.com/phuryn/pm-skills/blob/main/.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.