skill-authoring-workflow
npx machina-cli add skill deanpeters/Product-Manager-Skills/skill-authoring-workflow --openclawPurpose
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.
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,type) - Section order is compliant
- Metadata limits are respected (
name<= 64 chars,description<= 200 chars) - 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
- 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
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.
- 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.mdscripts/add-a-skill.shscripts/build-a-skill.shscripts/find-a-skill.shscripts/test-a-skill.shscripts/check-skill-metadata.pyscripts/zip-a-skill.sh
Source
git clone https://github.com/deanpeters/Product-Manager-Skills/blob/main/skills/skill-authoring-workflow/SKILL.mdView on GitHub Overview
Transforms rough PM notes, workshop outputs, or prompt dumps into compliant skills under skills/<skill-name>/SKILL.md. It validates metadata, section order, and cross references, and ensures documentation updates before commit.
How This Skill Works
Uses repo native tools to draft, validate, and publish. Choose a path: guided wizard via build-a-skill.sh for imperfect prose, content-first generator via add-a-skill.sh for existing material, or manual edit plus validation for tightening. Then run preflight checks, strict conformance checks, and update the repo docs before final commit.
When to Use It
- Turning rough notes, workshop content, or prompt dumps into a compliant publish-ready skill.
- Performing a preflight to avoid duplicate work by scanning for overlapping skills.
- Generating a draft when you already have source material or want guided prompts.
- Running hard validation before committing, including tests and metadata checks.
- Integrating the new skill into repo docs, catalogs, and category counts.
Quick Start
- Step 1: Search for overlapping skills with ./scripts/find-a-skill.sh --keyword <topic>
- Step 2: Generate a draft with ./scripts/add-a-skill.sh research/your-framework.md or use ./scripts/build-a-skill.sh for guided prompts
- Step 3: Validate locally with ./scripts/test-a-skill.sh --skill <skill-name> --smoke and python3 scripts/check-skill-metadata.py skills/<skill-name>/SKILL.md
Best Practices
- Start with valid frontmatter including name, description, and type that meet limits.
- Follow the defined workflow phases: preflight, draft, tighten, validate, integrate.
- Prefer repo native tools to custom processes (dogfood mindset).
- Keep content tight and actionable with concrete guidance not filler.
- Resolve all cross references and refresh README catalog entries as skills change.
Example Use Cases
- Example: Turn Workshop Notes into a Skill by running add-a-skill.sh on research/pricing-workshop-notes.md, then test and check.
- Example: Guided prompts use build-a-skill.sh to generate a draft from ideas before tightening.
- Example: Tighten a skill by adding clear when to use, one concrete example, and an anti-pattern.
- Example: Hard validation with test-a-skill.sh and check-skill-metadata.py before commit.
- Example: Packaging an acquired skill for Claude with zip-a-skill.sh and updating the README catalog.