PM Skills Marketplace: 100+ agentic skills, commands, and plugins β from discovery to strategy, execution, launch, and growth.
# AGENTS.md
All agent guidance for this repository lives in **[CLAUDE.md](CLAUDE.md)** β that is the single source of truth.
Please read [CLAUDE.md](CLAUDE.md) before making changes. This file exists only so non-Claude agents that look for `AGENTS.md` are pointed to the same instructions; do not duplicate guidance here.
# CLAUDE.md
Guidance for AI agents (Claude Code, Cowork, and others) working in this repository. This file is the single source of truth for how the project is structured and maintained.
## Project Overview
**PM Skills** (`phuryn/pm-skills`) β a marketplace of **9 independent plugins** (68 skills, 42 commands) that bring structured product-management workflows to AI coding assistants. Built for Claude Code and Claude Cowork; the skills are also compatible with other agents (Gemini CLI, Cursor, Codex CLI).
Owner: PaweΕ Huryn β [email protected] β https://www.productcompass.pm
## Repo Structure
```
pm-skills/ <- repo root
βββ .claude-plugin/marketplace.json <- root marketplace manifest (lists all 9 plugins)
βββ .docs/images/ <- images used by README (webp, gif)
βββ .gitattributes
βββ .gitignore
βββ .github/workflows/ <- CI: tests.yml (every PR/push), tag-on-merge.yml (auto-release)
βββ CHANGELOG.md <- release source of truth (new ## vX.Y.Z heading on main = release)
βββ CLAUDE.md <- this file (agent guidance, single source of truth)
βββ AGENTS.md <- pointer to CLAUDE.md (for non-Claude agents)
βββ CONTRIBUTING.md <- contributor guidelines
βββ README.md <- public documentation (GitHub)
βββ LICENSE <- MIT
βββ validate_plugins.py <- plugin validator
βββ tests/ <- unit + docs-consistency tests (unittest)
βββ pm-{name}/ <- 9 plugin directories
βββ .claude-plugin/plugin.json <- per-plugin manifest
βββ skills/{skill}/SKILL.md <- one folder per skill
βββ commands/{command}.md <- one file per command
βββ README.md <- per-plugin documentation
```
### The 9 plugins
| Plugin | Focus |
|--------|-------|
| `pm-product-discovery` | Ideation, experiments, assumption testing, prioritization, interview synthesis |
| `pm-product-strategy` | Vision, strategy/lean/business-model canvas, SWOT, PESTLE, Ansoff, Porter, monetization |
| `pm-execution` | PRDs, OKRs, roadmaps, sprints, pre-mortems, stakeholder maps, user stories, red-teaming |
| `pm-market-research` | Personas, segmentation, sentiment analysis, competitive analysis, market sizing |
| `pm-data-analytics` | SQL query generation, cohort/retention analysis |
| `pm-go-to-market` | GTM strategy, growth loops, motions, beachhead segments, ICPs |
| `pm-marketing-growth` | Marketing ideas, value-prop statements, North Star metrics, naming, positioning |
| `pm-toolkit` | Resume review, NDA drafting, privacy policy, grammar/flow checking |
| `pm-ai-shipping` | AI Shipping Kit: document a vibe-coded app, map test coverage, audit security/performance against intended behavior, compile a shipping packet |
## Key Design Rules
- **Skills = nouns/concepts.** Frameworks and analytical knowledge Claude auto-loads when the topic matches (`lean-canvas`, `pre-mortem`, `market-sizing`).
- **Commands = verbs.** User-triggered workflows that chain one or more skills (`/write-prd`, `/discover`, `/plan-launch`).
- **No cross-plugin references.** Commands suggest follow-ups in natural language only ("Want me to design growth loops?"). Never hard-reference a command from another plugin β plugins install independently, so a hard reference can break.
- **Intra-plugin "Uses" references are fine** β skills and commands in the same plugin always ship together.
- Commands use a single `$ARGUMENTS` placeholder. Skills need no placeholders (they read context from the conversation).
- **Frontmatter required:** Skills need `name` + `description`; commands need `description` + `argument-hint`.
- A skill's `name` **must match its directory name**.
- Skills can be force-loaded with `/plugin-name:skill-name` or `/skill-name`.
- Keep frontmatter lean (always loaded); put detail in the SKILL.md body (loaded when triggered) β progressive disclosure.
## What's Visible Where
| Location | Visible in | Notes |
|----------|-----------|-------|
| `marketplace.json` β `description` | Cowork marketplace browser, Claude Code | One-liner for the whole marketplace |
| `plugin.json` β `description` | Cowork plugin list, Claude Code | Per-plugin summary; concise and functional |
| `SKILL.md` frontmatter β `description` | Cowork skill list, Claude auto-loading | Include trigger phrases so Claude loads the skill at the right time |
| Command frontmatter β `description` + `argument-hint` | Cowork and Claude Code (typing `/`) | Short and actionable |
| `README.md` (repo root) | GitHub only | Full docs; not loaded by Claude at runtime |
Descriptions in `plugin.json` and the repo `README.md` should stay aligned (identical text).
## Versioning & Releases
- **`CHANGELOG.md` is the source of truth.** The newest `## vX.Y.Z β YYYY-MM-DD` heading is the released version. Pushing a commit to `main` that adds a new heading makes CI (`.github/workflows/tag-on-merge.yml`) verify the version sync and test suite, tag `vX.Y.Z`, and publish a GitHub Release with that section as notes.
- **Keep every version in sync.** `marketplace.json`, all 9 `plugin.json` files, and the newest CHANGELOG heading always carry the same version (enforced by `tests/test_consistency.py`). There is no independent per-plugin versioning.
- Every user-facing change gets a CHANGELOG bullet under `## Unreleased`; contributors are credited inline (`#PR, thanks @handle`). Full procedure: CONTRIBUTING.md Β§ Releases.
- Semver: breaking = major; new skills/commands or changed behavior = minor; fixes/docs = patch.
## Article Links in Skills (Further Reading)
- Mapped skills end with a `### Further Reading` section linking to relevant Product Compass articles.
- **Tone must stay neutral** β no promotional language, no CTAs, no "subscribe"/"check out". Just the article title and URL.
- Claude surfaces these links based on conversational relevance, not on every response.
- Posts whose title contains "Masterclass" or "Course" are video courses β tag them `(video course)`.
## Operational Procedures
### After any skill/command change
1. Run `python3 validate_plugins.py` and `python3 -m unittest discover -s tests` from the repo root.
2. If skills/commands were added or removed, update the counts in `README.md` (headline + per-plugin summary + plugin README section headers β the tests check all three).
3. If totals changed, update the count in the `marketplace.json` description.
4. Add a `CHANGELOG.md` bullet under `## Unreleased` for any user-facing change.
5. Bump versions across all manifests at release time (see Versioning & Releases).
### After a description change
- A `plugin.json` description changed β check whether `README.md` needs the same edit (they stay aligned).
- A `SKILL.md` description changed β no other sync needed (it's the single source for that skill).
## Validation
`validate_plugins.py` checks: `plugin.json` required fields / name match / semver / author / keywords; skill frontmatter and name-matches-directory; command frontmatter (`description` + `argument-hint`); README presence; and intra-plugin commandβskill references.
`tests/` adds the consistency layer: README counts vs. disk, marketplace plugin list vs. directories, version sync across all manifests + CHANGELOG, CHANGELOG heading format, and `/plugin:command` references in plugin READMEs. Both run in CI on every PR and push to `main`, and gate releases.
```
python3 validate_plugins.py
python3 -m unittest discover -s tests
```
## What to Suggest After Completing Work
Offer relevant follow-ups:
- After structural changes: "Want me to run the validator?"
- After adding/removing skills or commands: "Should I update the counts in README.md and marketplace.json?"
- After editing descriptions: "Should I sync this to README.md / plugin.json?"
- After any repo change: "Want me to bump the version?"
---
name: competitive-battlecard
description: "Create sales-ready competitive battlecards comparing your product against a specific competitor β positioning, feature comparison, objection handling, and win/loss patterns. Use when preparing sales teams, creating competitive materials, or responding to 'why not competitor X?'"
---
## Competitive Battlecard
Create a concise, sales-ready battlecard for use against a specific competitor.
### Context
You are creating a competitive battlecard for **$ARGUMENTS**.
Use web search to research the competitor's current product, pricing, positioning, and recent changes. If the user provides files (feature lists, win/loss data, sales call notes), read them first.
### Instructions
1. **Research the competitor** (use web search):
- Current product offerings and features
- Pricing tiers and model
- Target market and positioning
- Recent product launches or changes
- Known strengths and weaknesses
- Customer reviews and sentiment (G2, Capterra, Reddit)
2. **Create the battlecard** with these sections:
### Company Overview
- Founded, HQ, funding/revenue (if public)
- Target market and ICP
- Positioning in one sentence
### Quick Comparison
| Capability | Us | Them | Winner |
|---|---|---|---|
| [Feature area 1] | [Our approach] | [Their approach] | [Us/Them/Tie] |
| [Feature area 2] | ... | ... | ... |
| Pricing | ... | ... | ... |
| Support | ... | ... | ... |
### Where We Win
- [Advantage 1]: [Proof point or customer quote]
- [Advantage 2]: [Specific capability they lack]
- [Advantage 3]: [Better approach with reasoning]
### Where They Win
- [Their strength 1]: [Our counter-positioning]
- [Their strength 2]: [How we mitigate this gap]
### Common Objections & Responses
| Prospect Says | Respond With |
|---|---|
| "Competitor X has [feature]" | "[Our alternative approach and why it's better for them]" |
| "They're cheaper" | "[Value framing: total cost of ownership, ROI, hidden costs]" |
| "They're more established" | "[Our advantages: speed, innovation, focus, support]" |
### Landmines to Plant
Questions to ask the prospect that highlight competitor weaknesses:
- "How important is [area where we excel] to your team?"
- "Have you evaluated [specific capability they lack]?"
### Win/Loss Patterns
- We tend to win when: [pattern]
- We tend to lose when: [pattern]
- Key differentiator in competitive deals: [what tips the scale]
3. **Keep it scannable**: Sales reps need to reference this during calls. Use tables, bold text, and short bullets.
Save as markdown. Format for easy printing or sharing in Notion/Confluence.
---
### Further Reading
- [How to Design a Value Proposition Customers Can't Resist?](https://www.productcompass.pm/p/how-to-design-value-proposition-template)
Discover similar high-velocity repositories, agent skills, and OpenAPI specifications across the ecosystem.
Topic hubs, agent specifications, and quick tools