skill-authoring-workflow
deanpeters/product-manager-skills
Turn raw PM content into compliant, publish-ready skills without breaking repo standards.
What is skill-authoring-workflow?
A workflow for creating or updating PM skills from rough notes, workshop content, or existing material into validated SKILL.md assets. Use it when authoring new skills or updating existing ones while maintaining repo compliance and standards.
- Guides you through a six-phase authoring workflow: preflight search, draft generation, tightening, validation, repo integration, and optional packaging
- Enforces definition-of-done criteria including frontmatter validity, section order compliance, and metadata limits
- Provides shell scripts (find-a-skill.sh, add-a-skill.sh, build-a-skill.sh, test-a-skill.sh) to automate search, generation, testing, and validation
- Validates skill structure, metadata, and triggers before commit using Python checkers and smoke tests
- Integrates new skills into README catalogs with correct counts and category tables
- Supports packaging skills for Claude custom skill upload via zip-a-skill.sh with preset options
How to install skill-authoring-workflow
npx skills add https://github.com/deanpeters/product-manager-skills --skill skill-authoring-workflow- Access to the repo with scripts/ directory (find-a-skill.sh, add-a-skill.sh, build-a-skill.sh, test-a-skill.sh, check-skill-metadata.py, check-skill-triggers.py, zip-a-skill.sh)
- Source material (notes, transcript, framework, or existing skill to update)
- Familiarity with SKILL.md frontmatter format (name, description, intent, type)
How to use skill-authoring-workflow
- 1.Run Phase 1 preflight: use find-a-skill.sh to search for overlapping skills and confirm your skill type (component/interactive/workflow)
- 2.Run Phase 2 generation: use add-a-skill.sh with source content or build-a-skill.sh for guided prompts to create a draft SKILL.md
- 3.Run Phase 3 tightening: manually review for clear 'when to use' guidance, concrete examples from different domains, templates where needed, and anti-patterns; remove filler
- 4.Run Phase 4 validation: execute test-a-skill.sh --smoke, check-skill-metadata.py, and check-skill-triggers.py to verify structure and metadata compliance
- 5.Run Phase 5 integration: add the skill to the correct README category table and update skill counts and category totals
- 6.Run Phase 6 optional packaging: use zip-a-skill.sh to package for Claude upload if needed
Use cases
- Convert workshop notes or transcript into a new interactive advisor skill
- Update an existing skill while keeping repo standards and cross-references intact
- Author a component skill from a template or framework you've already drafted
- Run full validation before committing a new skill to ensure it passes all structural checks
- Package curated skill sets (e.g., core-pm preset) for distribution or Claude upload
- Product managers authoring or maintaining skills in a repo
- Contributors creating new skills from raw material or notes
- Teams managing a shared skill library with strict compliance requirements
- Anyone shipping skills without manual validation roulette
skill-authoring-workflow FAQ
Rough is fine: raw notes, workshop transcript, framework, or an existing skill you want to update. If you provide source material inline with your request, the workflow starts at Phase 1 with that context and won't re-ask. If you arrive with nothing, it opens by asking what content you want to turn into a skill.
A skill is done only when: frontmatter is valid (name, description, intent, type), section order is compliant, metadata limits are respected (name ≤64 chars, description ≤200 chars), description says both what it does and when to use it, Input section explains what users can bring with an example invocation, and README catalog counts are updated.
Component is one artifact or template. Interactive is 3–5 adaptive questions with numbered options. Workflow is multi-phase orchestration. Choose based on whether your skill produces a single output, guides a decision, or orchestrates multiple steps.
You risk broken references, inconsistent catalog numbers, confusion for contributors and users, and rejection during review. Always run test-a-skill.sh --smoke, check-skill-metadata.py, and check-skill-triggers.py before committing.
Yes. Phase 2 can target an existing skill file, Phase 3 tightens it, and Phase 4 validates the changes. Phase 5 ensures README entries stay consistent if the skill's scope or category changed.
Full instructions (SKILL.md)
Source of truth, from deanpeters/product-manager-skills.
name: skill-authoring-workflow
argument-hint: "[source content or skill to update]"
description: Turn raw PM content into a compliant, publish-ready skill. Use when creating or updating a repo skill without breaking standards.
intent: >-
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.
type: workflow
best_for:
- "Creating a new repo skill from notes or source material"
- "Updating an existing skill while keeping standards intact"
- "Running the full authoring and validation workflow before commit" scenarios:
- "Help me turn these workshop notes into a new PM skill"
- "I need to update an existing skill without breaking the repo standards"
- "What workflow should I use to author a new skill in this repo?" theme: meta-authoring estimated_time: "45-90 min"
Purpose
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.
Input
Bring the raw material and the intent — rough is fine; the workflow exists to get it the rest of the way:
- Works best with: the source content (notes, transcript, framework, prompt sequence) or the existing skill you want to update
- Also useful: the intended skill type (component/interactive/workflow), target audience, and any naming preference
If you supply this inline with your request (e.g., "turn research/pricing-workshop-notes.md into an interactive advisor"), the workflow starts at Phase 1 with that context — it won't re-ask for what you already gave. If you provide nothing, it opens by asking what content you want to turn into a skill and offers the entry modes from the facilitation protocol.
Example: Use skill-authoring-workflow: convert research/pricing-workshop-notes.md into an interactive pricing advisor.
Key Concepts
Dogfood First
Use repo-native tools and standards before inventing a custom process:
scripts/find-a-skill.shscripts/add-a-skill.shscripts/build-a-skill.shscripts/test-a-skill.shscripts/check-skill-metadata.py
Pick the Right Creation Path
- Guided wizard (
build-a-skill.sh): Best when you have an idea but not final prose. - Content-first generator (
add-a-skill.sh): Best when you already have source content. - Manual edit + validate: Best for tightening an existing skill.
Definition of Done (No Exceptions)
A skill is done only when:
- Frontmatter is valid (
name,description,intent,type) - Section order is compliant (Purpose, Input, Key Concepts, Application, Examples, Common Pitfalls, References)
- Metadata limits are respected (
name<= 64 chars,description<= 200 chars) - Description says both what the skill does and when to use it
- The Input section says what the user can bring, shows an example invocation, tells the agent to use inline input instead of re-asking, and makes clear that arriving with partial or zero input is fine — in plain language, never runtime template syntax like
$ARGUMENTS(rationale: CONTRIBUTING.md, "Why We Don't Use$ARGUMENTS") - Intent carries the fuller repo-facing summary without replacing the trigger-oriented description
- Cross-references resolve
- README catalog counts and tables are updated (if adding/removing skills)
Facilitation Source of Truth
When running this workflow as a guided conversation, use workshop-facilitation as the interaction protocol.
It defines:
- session heads-up + entry mode (Guided, Context dump, Best guess)
- one-question turns with plain-language prompts
- progress labels (for example, Context Qx/8 and Scoring Qx/5)
- interruption handling and pause/resume behavior
- numbered recommendations at decision points
- quick-select numbered response options for regular questions (include
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.
Application
Phase 1: Preflight (Avoid Duplicate Work)
- Search for overlapping skills:
./scripts/find-a-skill.sh --keyword "<topic>"
- Decide type:
- Component: one artifact/template
- Interactive: 3-5 adaptive questions + numbered options
- Workflow: multi-phase orchestration
Phase 2: Generate Draft
If you have source material:
./scripts/add-a-skill.sh research/your-framework.md
If you want guided prompts:
./scripts/build-a-skill.sh
Phase 3: Tighten the Skill
Manually review for:
- Clear "when to use" guidance
- One concrete example — optimally two, from different business domains (one SaaS, one industrial/non-SaaS), so the framework visibly generalizes; reuse the repo's fictional universes (Fieldlight/Wrenchline for SaaS, Helix/Northfield/Corvid for industrial) and suffix the second file by domain (
sample-industrial.md) - A
template.mdwhen the skill produces an artifact — the output schema as a copy/paste fill-in with quality checks - One explicit anti-pattern
- No filler or vague consultant-speak
Phase 4: Validate Hard
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
Phase 5: Integrate with Repo Docs
If this is a new skill:
- Add it to the correct README category table
- Update skill totals and category counts
- Verify link paths resolve
Phase 6: Optional Packaging
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
Examples
Example: Turn Workshop Notes into a Skill
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:
- New skill folder exists
- Skill passes structural and metadata checks
- README catalog entry added/updated
Anti-Pattern Example
"We wrote a cool skill, skipped validation, forgot README counts, and shipped anyway."
Result:
- Broken references
- Inconsistent catalog numbers
- Confusion for contributors and users
Common Pitfalls
- Shipping vibes, not standards.
- Choosing
workflowwhen the task is really a component template. - Bloated descriptions that exceed upload limits.
- Descriptions that say what the skill is but not when Claude should trigger it.
- Descriptions that silently hit the 200-char limit and get cut off mid-thought.
- Letting
intentbecome a substitute for a weak trigger description. - Forgetting to update README counts after adding a skill.
- Treating generated output as final without review.
References
README.mdAGENTS.mdCLAUDE.mddocs/Building PM Skills.mddocs/Add-a-Skill Utility Guide.md- Anthropic's Complete Guide to Building Skills for Claude
scripts/add-a-skill.shscripts/build-a-skill.shscripts/find-a-skill.shscripts/test-a-skill.shscripts/check-skill-metadata.pyscripts/check-skill-triggers.pyscripts/zip-a-skill.sh
Related skills
More from deanpeters/product-manager-skills and the wider catalog.

storyboard
Create a six-frame visual narrative showing a user's journey from problem to solution for fast stakeholder alignment.

tam-sam-som-calculator
Calculate defensible TAM, SAM, and SOM estimates backed by real data and citations.

user-story
Create development-ready user stories with Mike Cohn format and Gherkin acceptance criteria.

user-story-mapping
Visualize user journeys as hierarchical activity maps to align teams and prioritize releases around actual workflows.

user-story-mapping-workshop
Facilitate user story mapping workshops to visualize workflows, priorities, and release slices.

user-story-splitting
Break large user stories into smaller, independently deliverable slices using proven splitting patterns.