Create or update PM skills without chaos. This workflow turns rough notes, workshop content, or half-baked prompt dumps into compliant skills/<skill-name>/SKILL.md assets that actually pass validation and belong in this repo.
Use it when you want to ship a new skill without "looks good to me" roulette.
Use repo-native tools and standards before inventing a custom process:
scripts/find-a-skill.sh
scripts/add-a-skill.sh
scripts/build-a-skill.sh
scripts/test-a-skill.sh
scripts/check-skill-metadata.py
build-a-skill.sh): Best when you have an idea but not final prose.add-a-skill.sh): Best when you already have source content.A skill is done only when:
name, description, intent, type)name <= 64 chars, description <= 200 chars)When running this workflow as a guided conversation, use workshop-facilitation as the interaction protocol.
It defines:
Other (specify) when useful)This file defines the workflow sequence and domain-specific outputs. If there is a conflict, follow this file's workflow logic.
./scripts/find-a-skill.sh --keyword "<topic>"
If you have source material:
./scripts/add-a-skill.sh research/your-framework.md
If you want guided prompts:
./scripts/build-a-skill.sh
Manually review for:
Run strict checks before thinking about commit:
./scripts/test-a-skill.sh --skill <skill-name> --smoke
python3 scripts/check-skill-metadata.py skills/<skill-name>/SKILL.md
python3 scripts/check-skill-triggers.py skills/<skill-name>/SKILL.md --show-cases
If this is a new skill:
If targeting Claude custom skill upload:
./scripts/zip-a-skill.sh --skill <skill-name>
# or zip one category:
./scripts/zip-a-skill.sh --type component --output dist/skill-zips
# or use a curated starter preset:
./scripts/zip-a-skill.sh --preset core-pm --output dist/skill-zips
Input: research/pricing-workshop-notes.md
Goal: new interactive advisor
./scripts/add-a-skill.sh research/pricing-workshop-notes.md
./scripts/test-a-skill.sh --skill <new-skill-name> --smoke
python3 scripts/check-skill-metadata.py skills/<new-skill-name>/SKILL.md
Expected result:
"We wrote a cool skill, skipped validation, forgot README counts, and shipped anyway."
Result:
workflow when the task is really a component template.intent become a substitute for a weak trigger description.README.md
AGENTS.md
CLAUDE.md
docs/Building PM Skills.md
docs/Add-a-Skill Utility Guide.md
scripts/add-a-skill.sh
scripts/build-a-skill.sh
scripts/find-a-skill.sh
scripts/test-a-skill.sh
scripts/check-skill-metadata.py
scripts/check-skill-triggers.py
scripts/zip-a-skill.sh