# What Programming Language Is phuryn/pm-skills Written In?

> Discover the programming language behind phuryn/pm-skills. Learn how this repository leverages Python and Markdown for AI skill definitions.

- Repository: [Pawel Huryn/pm-skills](https://github.com/phuryn/pm-skills)
- Tags: getting-started
- Published: 2026-06-18

---

**The phuryn/pm-skills repository uses Python as its sole executable programming language, while storing its core content in structured Markdown files that define AI skills for Claude.**

The phuryn/pm-skills repository hosts reusable product-management capabilities for Claude AI. While the repository's domain knowledge lives in Markdown documentation, the only executable code is a Python validation script that ensures skill definitions meet structural requirements.

## Repository Structure: Markdown Content vs Python Logic

The codebase separates declarative content from procedural validation:

- **Markdown files** store skill definitions, commands, and configurations in human-readable format with YAML front-matter
- **Python** powers the validation tooling that checks these definitions for completeness and consistency

## The Python Validation Script

The file [`validate_plugins.py`](https://github.com/phuryn/pm-skills/blob/main/validate_plugins.py) contains the repository's only executable programming code. This Python script recursively scans the repository for plugin folders (those containing `.claude-plugin/` directories) and validates that Markdown skill files include required front-matter fields.

To execute the validator:

```bash

# From the repository root

python3 validate_plugins.py

```

The script parses files like [`pm-toolkit/skills/review-resume/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/pm-toolkit/skills/review-resume/SKILL.md) to verify they contain valid YAML front-matter with `name` and `description` keys, and confirms that declared skill names match their directory structures.

## Skill Definitions in Markdown

The primary "source code" of the repository consists of Markdown files that define AI capabilities. These files are not executable code but structured documentation parsed by both the Python validator and Claude AI.

For example, [`pm-toolkit/skills/review-resume/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/pm-toolkit/skills/review-resume/SKILL.md) contains:

```markdown
---
name: review-resume
description: |
  Review a candidate's resume and highlight strengths/weaknesses.
---

# Review Resume

...

```

## Key Files and Language Distribution

- **[`validate_plugins.py`](https://github.com/phuryn/pm-skills/blob/main/validate_plugins.py)** (Python): Single-file validator that checks plugin structure and Markdown front-matter compliance
- **[`pm-toolkit/skills/review-resume/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/pm-toolkit/skills/review-resume/SKILL.md)** (Markdown): Example skill definition for resume review capabilities
- **[`README.md`](https://github.com/phuryn/pm-skills/blob/main/README.md)** (Markdown): Repository documentation and usage instructions
- **[`.claude-plugin/plugin.json`](https://github.com/phuryn/pm-skills/blob/main/.claude-plugin/plugin.json)** (JSON): Plugin manifest files required by Claude AI

## Summary

- **Python** is the only programming language used for executable logic in the phuryn/pm-skills repository
- The validation script at [`validate_plugins.py`](https://github.com/phuryn/pm-skills/blob/main/validate_plugins.py) ensures all Markdown skill definitions contain required YAML front-matter and naming conventions
- **Markdown** serves as the primary content format for defining AI skills, commands, and configurations
- The repository contains no compiled languages or additional runtime dependencies beyond Python 3

## Frequently Asked Questions

### Is phuryn/pm-skills primarily a Python project?

While the repository contains Python code in [`validate_plugins.py`](https://github.com/phuryn/pm-skills/blob/main/validate_plugins.py), it is not primarily a Python application. It is a collection of Markdown-based AI skill definitions with Python tooling for automated validation. The Markdown content represents the repository's primary value.

### What does the validate_plugins.py script validate?

The Python script scans directories containing `.claude-plugin/` folders and validates that associated Markdown files contain required YAML front-matter including `name` and `description` fields. It also verifies that these metadata values match the plugin's directory structure and that required configuration files are present.

### Can I use the phuryn/pm-skills skills without running Python?

Yes. The Markdown skill files are human-readable and usable by Claude AI without executing the Python validator. However, running `python3 validate_plugins.py` is recommended to check for structural errors, missing front-matter, or naming mismatches before deployment.

### Why use Markdown instead of a programming language for skill definitions?

The repository defines AI prompts and capabilities for product management tasks, which are naturally expressed as structured documentation. Markdown allows product managers to write and maintain AI skills without programming expertise, while the Python validator ensures technical correctness separately from content creation.