pm-skills-mcp 2.5.2 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -31
- package/dist/config.d.ts +2 -2
- package/dist/config.js +2 -2
- package/package.json +1 -1
- package/pm-skills-source.json +5 -5
- package/skills/define-hypothesis/SKILL.md +1 -1
- package/skills/define-jtbd-canvas/SKILL.md +1 -1
- package/skills/define-opportunity-tree/SKILL.md +1 -1
- package/skills/define-problem-statement/SKILL.md +1 -1
- package/skills/deliver-acceptance-criteria/SKILL.md +73 -0
- package/skills/deliver-acceptance-criteria/references/EXAMPLE.md +92 -0
- package/skills/deliver-acceptance-criteria/references/TEMPLATE.md +75 -0
- package/skills/deliver-edge-cases/SKILL.md +1 -1
- package/skills/deliver-launch-checklist/SKILL.md +1 -1
- package/skills/deliver-prd/SKILL.md +1 -1
- package/skills/deliver-release-notes/SKILL.md +1 -1
- package/skills/deliver-user-stories/SKILL.md +1 -1
- package/skills/develop-adr/SKILL.md +1 -1
- package/skills/develop-design-rationale/SKILL.md +1 -1
- package/skills/develop-solution-brief/SKILL.md +1 -1
- package/skills/develop-spike-summary/SKILL.md +1 -1
- package/skills/discover-competitive-analysis/SKILL.md +1 -1
- package/skills/discover-interview-synthesis/SKILL.md +1 -1
- package/skills/discover-stakeholder-summary/SKILL.md +1 -1
- package/skills/foundation-persona/SKILL.md +1 -1
- package/skills/iterate-lessons-log/SKILL.md +1 -1
- package/skills/iterate-pivot-decision/SKILL.md +1 -1
- package/skills/iterate-refinement-notes/SKILL.md +1 -1
- package/skills/iterate-retrospective/SKILL.md +1 -1
- package/skills/measure-dashboard-requirements/SKILL.md +1 -1
- package/skills/measure-experiment-design/SKILL.md +1 -1
- package/skills/measure-experiment-results/SKILL.md +1 -1
- package/skills/measure-instrumentation-spec/SKILL.md +1 -1
- package/skills/utility-pm-skill-builder/SKILL.md +283 -0
- package/skills/utility-pm-skill-builder/references/EXAMPLE.md +298 -0
- package/skills/utility-pm-skill-builder/references/TEMPLATE.md +209 -0
- package/skills/utility-pm-skill-iterate/SKILL.md +301 -0
- package/skills/utility-pm-skill-iterate/references/EXAMPLE.md +185 -0
- package/skills/utility-pm-skill-iterate/references/TEMPLATE.md +41 -0
- package/skills/utility-pm-skill-validate/SKILL.md +237 -0
- package/skills/utility-pm-skill-validate/references/EXAMPLE.md +58 -0
- package/skills/utility-pm-skill-validate/references/TEMPLATE.md +44 -0
package/README.md
CHANGED
|
@@ -119,7 +119,7 @@ PM-Skills MCP is built on [pm-skills](https://github.com/product-on-purpose/pm-s
|
|
|
119
119
|
**Not sure which to use?** See the [Comparison](#comparison) section below.
|
|
120
120
|
<!-- ========== END ENHANCED ========== -->
|
|
121
121
|
|
|
122
|
-
**_One connection.
|
|
122
|
+
**_One connection. 27 skills. Any MCP client._**
|
|
123
123
|
|
|
124
124
|
### Why MCP?
|
|
125
125
|
|
|
@@ -486,9 +486,9 @@ See the [pm-skills authoring guide](https://github.com/product-on-purpose/pm-ski
|
|
|
486
486
|
├─────────────────────────────────────────────────────────────┤
|
|
487
487
|
│ │
|
|
488
488
|
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
|
489
|
-
│ │
|
|
489
|
+
│ │ 40 Tools │ │ Resources │ │ 3 Prompts │ │
|
|
490
490
|
│ │ │ │ │ │ │ │
|
|
491
|
-
│ │ •
|
|
491
|
+
│ │ • 27 skills │ │ • templates │ │ • kickoff │ │
|
|
492
492
|
│ │ • 5 flows │ │ • examples │ │ • lean │ │
|
|
493
493
|
│ │ • 8 utils │ │ • skills │ │ • quick-prd │ │
|
|
494
494
|
│ │ │ │ │ │ │ │
|
|
@@ -496,7 +496,7 @@ See the [pm-skills authoring guide](https://github.com/product-on-purpose/pm-ski
|
|
|
496
496
|
│ │
|
|
497
497
|
│ ┌─────────────────────────────────────────────────────┐ │
|
|
498
498
|
│ │ Embedded PM-Skills Library │ │
|
|
499
|
-
│ │
|
|
499
|
+
│ │ 27 skills × (SKILL.md + TEMPLATE + EXAMPLE) │ │
|
|
500
500
|
│ └─────────────────────────────────────────────────────┘ │
|
|
501
501
|
│ │
|
|
502
502
|
└─────────────────────────────────────────────────────────────┘
|
|
@@ -509,7 +509,7 @@ See the [pm-skills authoring guide](https://github.com/product-on-purpose/pm-ski
|
|
|
509
509
|
|
|
510
510
|
### Tools
|
|
511
511
|
|
|
512
|
-
PM-Skills MCP wraps each skill from [pm-skills](https://github.com/product-on-purpose/pm-skills) as an MCP tool. The **
|
|
512
|
+
PM-Skills MCP wraps each skill from [pm-skills](https://github.com/product-on-purpose/pm-skills) as an MCP tool. The **27 skill tools** (like `pm_prd`, `pm_hypothesis`, `pm_acceptance_criteria`, `pm_pm_skill_builder`) generate PM artifacts, while **5 workflow tools** and **8 utility tools** help you orchestrate and validate skill usage. See the [Comparison](#comparison) section for when to use MCP tools vs file-based slash commands.
|
|
513
513
|
|
|
514
514
|
Every skill tool accepts these parameters:
|
|
515
515
|
|
|
@@ -694,7 +694,7 @@ npm install -g pm-skills-mcp
|
|
|
694
694
|
**Install a pinned release:**
|
|
695
695
|
|
|
696
696
|
```bash
|
|
697
|
-
npm install -g pm-skills-mcp@2.
|
|
697
|
+
npm install -g pm-skills-mcp@2.7.0
|
|
698
698
|
```
|
|
699
699
|
|
|
700
700
|
[](https://www.npmjs.com/package/pm-skills-mcp)
|
|
@@ -703,15 +703,7 @@ npm install -g pm-skills-mcp@2.5.2
|
|
|
703
703
|
From `v2.4.0` onward, `pm-skills-mcp` directly tracks `pm-skills` release versions.
|
|
704
704
|
Pinned source compatibility metadata is declared in `pm-skills-source.json` for each release.
|
|
705
705
|
|
|
706
|
-
Latest release
|
|
707
|
-
- [`docs/releases/Release_v2.5.2.md`](docs/releases/Release_v2.5.2.md)
|
|
708
|
-
- [`docs/releases/Release_v2.5.1.md`](docs/releases/Release_v2.5.1.md)
|
|
709
|
-
- [`docs/releases/Release_v2.5.0.md`](docs/releases/Release_v2.5.0.md)
|
|
710
|
-
- [`docs/releases/Release_v2.4.3.md`](docs/releases/Release_v2.4.3.md)
|
|
711
|
-
- [`docs/releases/Release_v2.4.2.md`](docs/releases/Release_v2.4.2.md)
|
|
712
|
-
- [`docs/releases/Release_v2.4.1.md`](docs/releases/Release_v2.4.1.md)
|
|
713
|
-
- [`docs/releases/Release_v2.4.0.md`](docs/releases/Release_v2.4.0.md)
|
|
714
|
-
- Published release tag: [`v2.5.2`](https://github.com/product-on-purpose/pm-skills-mcp/releases/tag/v2.5.2)
|
|
706
|
+
Latest: [`docs/releases/Release_v2.7.0.md`](docs/releases/Release_v2.7.0.md) | [Previous release details](#previous-release-details) | [Full changelog](#changelog)
|
|
715
707
|
|
|
716
708
|
### Project Structure
|
|
717
709
|
See [docs/reference/project-structure.md](docs/reference/project-structure.md) for detailed descriptions.
|
|
@@ -724,7 +716,7 @@ pm-skills-mcp/
|
|
|
724
716
|
│ ├── config.ts # Configuration management
|
|
725
717
|
│ ├── cache.ts # Skill caching layer
|
|
726
718
|
│ ├── skills/ # Skill loader and parser
|
|
727
|
-
│ ├── tools/ # MCP tool handlers (
|
|
719
|
+
│ ├── tools/ # MCP tool handlers (40 tools)
|
|
728
720
|
│ ├── resources/ # MCP resource handlers (skills/templates/examples + optional personas)
|
|
729
721
|
│ ├── prompts/ # MCP prompt definitions (3 prompts)
|
|
730
722
|
│ ├── workflows/ # Workflow bundle logic
|
|
@@ -733,7 +725,7 @@ pm-skills-mcp/
|
|
|
733
725
|
│ ├── deliver-prd/ # Example: phase-prefixed skill directories
|
|
734
726
|
│ ├── define-hypothesis/ # Each skill has SKILL.md + references/
|
|
735
727
|
│ ├── discover-interview-synthesis/
|
|
736
|
-
│ └── ... #
|
|
728
|
+
│ └── ... # 27 skills total
|
|
737
729
|
├── docs/ # Documentation
|
|
738
730
|
│ ├── getting-started.md # Complete setup and first-use guide
|
|
739
731
|
│ ├── integration-guide.md # Client-specific configuration
|
|
@@ -758,31 +750,67 @@ pm-skills-mcp/
|
|
|
758
750
|
|
|
759
751
|
|
|
760
752
|
|
|
753
|
+
### Previous Release Details
|
|
754
|
+
|
|
755
|
+
<a id="previous-release-details"></a>
|
|
756
|
+
|
|
757
|
+
<details>
|
|
758
|
+
<summary>v2.6.0 - Maintenance: pm-skills v2.6.0 version parity</summary>
|
|
759
|
+
|
|
760
|
+
- Version and source-pin metadata aligned with `pm-skills v2.6.0`.
|
|
761
|
+
- No MCP tool/resource/prompt behavior changes.
|
|
762
|
+
- Release note: [`docs/releases/Release_v2.6.0.md`](docs/releases/Release_v2.6.0.md).
|
|
763
|
+
|
|
764
|
+
</details>
|
|
765
|
+
<details>
|
|
766
|
+
<summary>v2.5.x - Persona tool support + taxonomy contract updates</summary>
|
|
767
|
+
|
|
768
|
+
**v2.5.2** — Public release-doc readability cleanup.
|
|
769
|
+
**v2.5.1** — Canonical `AGENTS/claude` continuity path.
|
|
770
|
+
**v2.5.0** — Persona skill tool (`pm_persona`), two-axis classification model (`phase` + `classification`), embed validation hardening. Tool count: 38.
|
|
771
|
+
- Release notes: [`Release_v2.5.0.md`](docs/releases/Release_v2.5.0.md) through [`Release_v2.5.2.md`](docs/releases/Release_v2.5.2.md).
|
|
772
|
+
|
|
773
|
+
</details>
|
|
774
|
+
<details>
|
|
775
|
+
<summary>v2.4.x - Direct version tracking with pm-skills</summary>
|
|
776
|
+
|
|
777
|
+
**v2.4.3** — Release metadata/link alignment patch.
|
|
778
|
+
**v2.4.2** — Governance + structure-doc alignment.
|
|
779
|
+
**v2.4.1** — Version/pin parity patch.
|
|
780
|
+
**v2.4.0** — Adopted direct version tracking with `pm-skills`. Added `pm-skills-source.json` for reproducible embeds. Resource URI contract tests. Tool count: 36.
|
|
781
|
+
- Release notes: [`Release_v2.4.0.md`](docs/releases/Release_v2.4.0.md) through [`Release_v2.4.3.md`](docs/releases/Release_v2.4.3.md).
|
|
782
|
+
|
|
783
|
+
</details>
|
|
784
|
+
<details>
|
|
785
|
+
<summary>v2.1.0 and earlier</summary>
|
|
786
|
+
|
|
787
|
+
**v2.1.0** — Flat skill structure alignment with pm-skills v2.x. Resource URIs flattened.
|
|
788
|
+
**v1.1.0** — Comprehensive documentation suite, platform compatibility.
|
|
789
|
+
**v1.0.0** — First stable release: 36 tools, caching, community governance.
|
|
790
|
+
**v0.1.x** — Initial implementation: MCP server, CI/CD, npm packaging.
|
|
791
|
+
- See [CHANGELOG.md](CHANGELOG.md) for full detail.
|
|
792
|
+
|
|
793
|
+
</details>
|
|
794
|
+
|
|
761
795
|
### Changelog
|
|
762
796
|
|
|
763
797
|
See [CHANGELOG.md](CHANGELOG.md) for full version history.
|
|
764
798
|
|
|
765
799
|
| Version | Date | Highlights |
|
|
766
800
|
| --------- | ---------- | ------------------------------------------------------------- |
|
|
767
|
-
| **2.
|
|
768
|
-
| **2.
|
|
769
|
-
| **2.5.0** | 2026-03-02 | Persona tool
|
|
770
|
-
| **2.4.
|
|
771
|
-
| **2.
|
|
772
|
-
| **
|
|
773
|
-
| **
|
|
774
|
-
| **2.1.0** | 2026-01-27 | Flat skill structure alignment with pm-skills v2.x |
|
|
775
|
-
| **1.1.0** | 2026-01-21 | Comprehensive documentation suite, platform compatibility |
|
|
776
|
-
| **1.0.0** | 2026-01-21 | First stable release baseline with MCP tooling, resources, and caching |
|
|
777
|
-
| **0.1.2** | 2026-01-20 | CI/CD infrastructure, branch migration to main |
|
|
778
|
-
| **0.1.1** | 2026-01-20 | GitHub Actions CI/CD, ESLint + Prettier, npm package setup |
|
|
779
|
-
| **0.1.0** | 2026-01-20 | Initial implementation baseline for PM-skills MCP integration |
|
|
801
|
+
| **2.7.0** | 2026-03-22 | 2 new skill tools (`pm_acceptance_criteria`, `pm_pm_skill_builder`), 27 skills, 40 tools |
|
|
802
|
+
| **2.6.0** | 2026-03-04 | Maintenance: pm-skills v2.6.0 version/source-pin parity |
|
|
803
|
+
| **2.5.0** | 2026-03-02 | Persona tool + taxonomy contract updates + embed hardening |
|
|
804
|
+
| **2.4.0** | 2026-02-16 | Direct version tracking + pinned source metadata |
|
|
805
|
+
| **2.1.0** | 2026-01-27 | Flat skill structure alignment with pm-skills v2.x |
|
|
806
|
+
| **1.0.0** | 2026-01-21 | First stable release: 36 tools, caching, governance |
|
|
807
|
+
| **0.1.0** | 2026-01-20 | Initial MCP server implementation |
|
|
780
808
|
|
|
781
809
|
### Roadmap
|
|
782
810
|
|
|
783
811
|
See the [open issues](https://github.com/product-on-purpose/pm-skills-mcp/issues) for planned features.
|
|
784
812
|
|
|
785
|
-
- [x] Core MCP server with all
|
|
813
|
+
- [x] Core MCP server with all 27 PM skills
|
|
786
814
|
- [x] Workflow bundle tools
|
|
787
815
|
- [x] MCP resources for direct skill access
|
|
788
816
|
- [x] MCP prompts for guided workflows
|
package/dist/config.d.ts
CHANGED
|
@@ -11,8 +11,8 @@ export declare function loadConfig(): ServerConfig;
|
|
|
11
11
|
*/
|
|
12
12
|
export declare const SERVER_INFO: {
|
|
13
13
|
readonly name: "pm-skills-mcp";
|
|
14
|
-
readonly version: "2.
|
|
15
|
-
readonly description: "MCP server exposing
|
|
14
|
+
readonly version: "2.7.0";
|
|
15
|
+
readonly description: "MCP server exposing 27 product management skills as tools";
|
|
16
16
|
};
|
|
17
17
|
/**
|
|
18
18
|
* Tool naming configuration
|
package/dist/config.js
CHANGED
|
@@ -81,8 +81,8 @@ export function loadConfig() {
|
|
|
81
81
|
*/
|
|
82
82
|
export const SERVER_INFO = {
|
|
83
83
|
name: 'pm-skills-mcp',
|
|
84
|
-
version: '2.
|
|
85
|
-
description: 'MCP server exposing
|
|
84
|
+
version: '2.7.0',
|
|
85
|
+
description: 'MCP server exposing 27 product management skills as tools',
|
|
86
86
|
};
|
|
87
87
|
/**
|
|
88
88
|
* Tool naming configuration
|
package/package.json
CHANGED
package/pm-skills-source.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"pmSkillsRepository": "product-on-purpose/pm-skills",
|
|
3
|
-
"pmSkillsRef": "v2.
|
|
4
|
-
"pmSkillsVersion": "2.
|
|
5
|
-
"outputContractVersion": "2.
|
|
6
|
-
"configContractVersion": "2.
|
|
7
|
-
"updated": "2026-03
|
|
3
|
+
"pmSkillsRef": "v2.8.0",
|
|
4
|
+
"pmSkillsVersion": "2.8.0",
|
|
5
|
+
"outputContractVersion": "2.8.0",
|
|
6
|
+
"configContractVersion": "2.8.0",
|
|
7
|
+
"updated": "2026-04-03"
|
|
8
8
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
2
1
|
---
|
|
3
2
|
name: define-hypothesis
|
|
4
3
|
description: Defines a testable hypothesis with clear success metrics and validation approach. Use when forming assumptions to test, designing experiments, or aligning team on what success looks like.
|
|
@@ -11,6 +10,7 @@ metadata:
|
|
|
11
10
|
frameworks: [triple-diamond, lean-startup, design-thinking]
|
|
12
11
|
author: product-on-purpose
|
|
13
12
|
---
|
|
13
|
+
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
14
14
|
# Hypothesis
|
|
15
15
|
|
|
16
16
|
A hypothesis is a testable prediction about how a change will affect user behavior or business outcomes. It transforms assumptions into explicit statements that can be validated or invalidated through experimentation. Well-formed hypotheses prevent teams from building features based on untested beliefs and create shared understanding of what success looks like.
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
2
1
|
---
|
|
3
2
|
name: define-jtbd-canvas
|
|
4
3
|
description: Creates a Jobs to be Done canvas capturing the functional, emotional, and social dimensions of a customer job. Use when deeply understanding customer motivations, designing for jobs, or reframing product positioning.
|
|
@@ -11,6 +10,7 @@ metadata:
|
|
|
11
10
|
frameworks: [triple-diamond, lean-startup, design-thinking]
|
|
12
11
|
author: product-on-purpose
|
|
13
12
|
---
|
|
13
|
+
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
14
14
|
# Jobs to be Done Canvas
|
|
15
15
|
|
|
16
16
|
A Jobs to be Done (JTBD) canvas captures the complete picture of why customers "hire" products to make progress in their lives. Based on Clayton Christensen's framework, JTBD goes beyond features and demographics to understand the underlying motivations—functional, emotional, and social—that drive customer behavior.
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
2
1
|
---
|
|
3
2
|
name: define-opportunity-tree
|
|
4
3
|
description: Creates an opportunity solution tree mapping desired outcomes to opportunities and potential solutions. Use for outcome-driven product discovery, prioritization, or communicating product strategy.
|
|
@@ -11,6 +10,7 @@ metadata:
|
|
|
11
10
|
frameworks: [triple-diamond, lean-startup, design-thinking]
|
|
12
11
|
author: product-on-purpose
|
|
13
12
|
---
|
|
13
|
+
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
14
14
|
# Opportunity Solution Tree
|
|
15
15
|
|
|
16
16
|
An Opportunity Solution Tree (OST) is a visual framework for product discovery that connects business outcomes to customer opportunities and potential solutions. Developed by Teresa Torres, it prevents the common trap of jumping straight to solutions by ensuring every feature idea traces back to a customer need and measurable outcome.
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
2
1
|
---
|
|
3
2
|
name: define-problem-statement
|
|
4
3
|
description: Creates a clear problem framing document with user impact, business context, and success criteria. Use when starting a new initiative, realigning a drifted project, or communicating up to leadership.
|
|
@@ -11,6 +10,7 @@ metadata:
|
|
|
11
10
|
frameworks: [triple-diamond, lean-startup, design-thinking]
|
|
12
11
|
author: product-on-purpose
|
|
13
12
|
---
|
|
13
|
+
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
14
14
|
# Problem Statement
|
|
15
15
|
|
|
16
16
|
A problem statement is a concise document that frames the problem you're solving, articulates the impact on users and the business, and defines clear success criteria. It serves as the foundation for all subsequent product work by ensuring alignment on *what* problem to solve before jumping to *how* to solve it.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: deliver-acceptance-criteria
|
|
3
|
+
description: Generates structured Given/When/Then acceptance criteria for a user story or feature slice. Use when translating product requirements into testable scenarios that cover the happy path, edge cases, error states, and non-functional expectations for engineering handoff and QA.
|
|
4
|
+
phase: deliver
|
|
5
|
+
version: "1.0.0"
|
|
6
|
+
updated: 2026-03-22
|
|
7
|
+
license: Apache-2.0
|
|
8
|
+
metadata:
|
|
9
|
+
category: specification
|
|
10
|
+
frameworks: [triple-diamond, lean-startup, design-thinking]
|
|
11
|
+
author: product-on-purpose
|
|
12
|
+
---
|
|
13
|
+
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
14
|
+
# Acceptance Criteria
|
|
15
|
+
|
|
16
|
+
Acceptance criteria define the observable behavior that must be true for a story or feature to be considered done. This skill turns feature context into concise, testable Given/When/Then scenarios that engineers and QA can verify without guessing intent.
|
|
17
|
+
|
|
18
|
+
## When to Use
|
|
19
|
+
|
|
20
|
+
- After a user story, PRD section, or feature slice is defined
|
|
21
|
+
- When a team needs clear pass/fail conditions for implementation
|
|
22
|
+
- When writing QA-ready criteria for sprint planning or handoff
|
|
23
|
+
- When a story has edge cases, error paths, or non-functional expectations that should be explicit
|
|
24
|
+
|
|
25
|
+
## Instructions
|
|
26
|
+
|
|
27
|
+
When asked to create acceptance criteria, follow these steps:
|
|
28
|
+
|
|
29
|
+
1. **Confirm the story or feature scope**
|
|
30
|
+
Identify the exact slice of work. If the scope is unclear, ask for the user story, PRD section, or feature description before drafting criteria.
|
|
31
|
+
|
|
32
|
+
2. **Separate the happy path from exceptions**
|
|
33
|
+
Start with the primary success flow, then add edge cases and error states that are likely or costly if missed.
|
|
34
|
+
|
|
35
|
+
3. **Write each criterion as an observable scenario**
|
|
36
|
+
Use Given/When/Then language only. Keep each criterion independently testable and avoid implementation details.
|
|
37
|
+
|
|
38
|
+
4. **Cover recovery and failure behavior**
|
|
39
|
+
Describe what the user sees or can do when validation fails, a dependency is unavailable, or a save action cannot complete.
|
|
40
|
+
|
|
41
|
+
5. **Include non-functional expectations**
|
|
42
|
+
Add criteria for performance, accessibility, security, reliability, or auditability when they matter to the story.
|
|
43
|
+
|
|
44
|
+
6. **Avoid duplication and overlap**
|
|
45
|
+
Each criterion should test one outcome. If two criteria describe the same behavior, merge or split them until the intent is clear.
|
|
46
|
+
|
|
47
|
+
7. **Review for testability**
|
|
48
|
+
Ensure a reviewer can pass or fail each criterion without interpretation. If a statement is subjective, rewrite it into a measurable outcome.
|
|
49
|
+
|
|
50
|
+
## Output Contract
|
|
51
|
+
|
|
52
|
+
Use `references/TEMPLATE.md` as the output format. A complete response should:
|
|
53
|
+
|
|
54
|
+
- Restate the feature or story context
|
|
55
|
+
- Group criteria into happy path, edge cases, error states, and non-functional criteria
|
|
56
|
+
- Use explicit Given/When/Then statements for each criterion
|
|
57
|
+
- Note assumptions or open questions when context is incomplete
|
|
58
|
+
|
|
59
|
+
## Quality Checklist
|
|
60
|
+
|
|
61
|
+
Before finalizing, verify:
|
|
62
|
+
|
|
63
|
+
- [ ] The criteria map to a specific story or feature slice
|
|
64
|
+
- [ ] The happy path is covered first
|
|
65
|
+
- [ ] Edge cases are explicit, not implied
|
|
66
|
+
- [ ] Error states include user-visible recovery behavior
|
|
67
|
+
- [ ] Non-functional criteria are included when relevant
|
|
68
|
+
- [ ] Each criterion is testable and has one clear outcome
|
|
69
|
+
- [ ] No implementation details leak into the acceptance criteria
|
|
70
|
+
|
|
71
|
+
## Examples
|
|
72
|
+
|
|
73
|
+
See `references/EXAMPLE.md` for a completed example based on a realistic e-commerce checkout flow.
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
artifact: acceptance-criteria
|
|
3
|
+
version: "1.0"
|
|
4
|
+
created: 2026-03-22
|
|
5
|
+
status: complete
|
|
6
|
+
context: Acceptance criteria for a guest checkout flow in an e-commerce storefront
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Acceptance Criteria: Guest Checkout
|
|
10
|
+
|
|
11
|
+
This example describes the acceptance criteria for a guest checkout flow that lets shoppers buy items without creating an account.
|
|
12
|
+
|
|
13
|
+
## Story Context
|
|
14
|
+
|
|
15
|
+
The checkout experience must let a shopper complete an order as a guest, enter shipping and payment details, and receive a confirmation after payment succeeds. The criteria below focus on the behavior a reviewer can observe in the UI and system responses.
|
|
16
|
+
|
|
17
|
+
## Happy Path
|
|
18
|
+
|
|
19
|
+
### AC-1: Guest Checkout Form Loads
|
|
20
|
+
|
|
21
|
+
**Given** I have items in my cart and I am not signed in
|
|
22
|
+
|
|
23
|
+
**When** I open the checkout page
|
|
24
|
+
|
|
25
|
+
**Then** I can enter shipping information, delivery method, and payment details without being prompted to create an account
|
|
26
|
+
|
|
27
|
+
### AC-2: Order Completes Successfully
|
|
28
|
+
|
|
29
|
+
**Given** I have entered valid shipping and payment details
|
|
30
|
+
|
|
31
|
+
**When** I submit the order
|
|
32
|
+
|
|
33
|
+
**Then** I see an order confirmation page with an order number and estimated delivery date
|
|
34
|
+
|
|
35
|
+
## Edge Cases
|
|
36
|
+
|
|
37
|
+
### AC-3: Promo Code Can Be Applied
|
|
38
|
+
|
|
39
|
+
**Given** I am on checkout and my cart qualifies for a discount
|
|
40
|
+
|
|
41
|
+
**When** I enter a valid promo code and apply it
|
|
42
|
+
|
|
43
|
+
**Then** the order summary updates to show the discount before I submit payment
|
|
44
|
+
|
|
45
|
+
### AC-4: Shipping Address Validation Supports International Formats
|
|
46
|
+
|
|
47
|
+
**Given** I enter a shipping address for a supported non-US destination
|
|
48
|
+
|
|
49
|
+
**When** I continue to the next step
|
|
50
|
+
|
|
51
|
+
**Then** the form accepts the address if it matches the country-specific validation rules
|
|
52
|
+
|
|
53
|
+
## Error States
|
|
54
|
+
|
|
55
|
+
### AC-5: Invalid Card Is Rejected
|
|
56
|
+
|
|
57
|
+
**Given** I have entered shipping information but the payment card is invalid
|
|
58
|
+
|
|
59
|
+
**When** I attempt to place the order
|
|
60
|
+
|
|
61
|
+
**Then** I see a clear inline error message and the order is not created
|
|
62
|
+
|
|
63
|
+
### AC-6: Inventory Changes During Checkout
|
|
64
|
+
|
|
65
|
+
**Given** an item in my cart becomes out of stock before I submit payment
|
|
66
|
+
|
|
67
|
+
**When** I place the order
|
|
68
|
+
|
|
69
|
+
**Then** I am shown which item failed, my cart remains available, and I can remove the item or choose a different variant
|
|
70
|
+
|
|
71
|
+
## Non-Functional Criteria
|
|
72
|
+
|
|
73
|
+
### AC-7: Checkout Responds Within the Performance Budget
|
|
74
|
+
|
|
75
|
+
**Given** I submit a valid order during normal operating conditions
|
|
76
|
+
|
|
77
|
+
**When** the checkout request is processed
|
|
78
|
+
|
|
79
|
+
**Then** the confirmation response is returned within 3 seconds for at least 95 percent of requests
|
|
80
|
+
|
|
81
|
+
### AC-8: Checkout Errors Are Accessible
|
|
82
|
+
|
|
83
|
+
**Given** a validation or payment error occurs
|
|
84
|
+
|
|
85
|
+
**When** the error message is shown
|
|
86
|
+
|
|
87
|
+
**Then** the message is announced by screen readers and the field with the error receives focus when applicable
|
|
88
|
+
|
|
89
|
+
## Notes
|
|
90
|
+
|
|
91
|
+
- Payment processor and inventory service availability are external dependencies.
|
|
92
|
+
- Fraud review and manual review flows are out of scope for this example.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
artifact: acceptance-criteria
|
|
3
|
+
version: "1.0"
|
|
4
|
+
created: <YYYY-MM-DD>
|
|
5
|
+
status: draft
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Acceptance Criteria: [Feature or Story Title]
|
|
9
|
+
|
|
10
|
+
## Story Context
|
|
11
|
+
|
|
12
|
+
<!-- Briefly restate the story, feature slice, or PRD section this criteria set supports. -->
|
|
13
|
+
|
|
14
|
+
[Describe the user need, scope boundary, and any assumptions that matter for testing.]
|
|
15
|
+
|
|
16
|
+
## Happy Path
|
|
17
|
+
|
|
18
|
+
<!-- Capture the primary success flow first. Each criterion should be independently testable. -->
|
|
19
|
+
|
|
20
|
+
### AC-1: [Happy Path Title]
|
|
21
|
+
|
|
22
|
+
**Given** [initial context or precondition]
|
|
23
|
+
|
|
24
|
+
**When** [user action or trigger]
|
|
25
|
+
|
|
26
|
+
**Then** [expected observable outcome]
|
|
27
|
+
|
|
28
|
+
### AC-2: [Happy Path Title]
|
|
29
|
+
|
|
30
|
+
**Given** [initial context or precondition]
|
|
31
|
+
|
|
32
|
+
**When** [user action or trigger]
|
|
33
|
+
|
|
34
|
+
**Then** [expected observable outcome]
|
|
35
|
+
|
|
36
|
+
## Edge Cases
|
|
37
|
+
|
|
38
|
+
<!-- Document boundary conditions and alternate inputs that should still behave correctly. -->
|
|
39
|
+
|
|
40
|
+
### AC-3: [Edge Case Title]
|
|
41
|
+
|
|
42
|
+
**Given** [boundary condition or alternate state]
|
|
43
|
+
|
|
44
|
+
**When** [user action or trigger]
|
|
45
|
+
|
|
46
|
+
**Then** [expected observable outcome]
|
|
47
|
+
|
|
48
|
+
## Error States
|
|
49
|
+
|
|
50
|
+
<!-- Describe failures, validation issues, and dependency problems with recovery behavior. -->
|
|
51
|
+
|
|
52
|
+
### AC-4: [Error State Title]
|
|
53
|
+
|
|
54
|
+
**Given** [failure condition]
|
|
55
|
+
|
|
56
|
+
**When** [user action or trigger]
|
|
57
|
+
|
|
58
|
+
**Then** [expected observable outcome and recovery path]
|
|
59
|
+
|
|
60
|
+
## Non-Functional Criteria
|
|
61
|
+
|
|
62
|
+
<!-- Capture performance, accessibility, security, reliability, or audit requirements. -->
|
|
63
|
+
|
|
64
|
+
### AC-5: [Non-Functional Title]
|
|
65
|
+
|
|
66
|
+
**Given** [relevant system or user context]
|
|
67
|
+
|
|
68
|
+
**When** [measurement or action]
|
|
69
|
+
|
|
70
|
+
**Then** [expected measurable constraint or guarantee]
|
|
71
|
+
|
|
72
|
+
## Notes
|
|
73
|
+
|
|
74
|
+
- [Assumption or dependency]
|
|
75
|
+
- [Open question if the source story is incomplete]
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
2
1
|
---
|
|
3
2
|
name: deliver-edge-cases
|
|
4
3
|
description: Documents edge cases, error states, boundary conditions, and recovery paths for a feature. Use during specification to ensure comprehensive coverage, or during QA planning to identify test scenarios.
|
|
@@ -11,6 +10,7 @@ metadata:
|
|
|
11
10
|
frameworks: [triple-diamond, lean-startup, design-thinking]
|
|
12
11
|
author: product-on-purpose
|
|
13
12
|
---
|
|
13
|
+
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
14
14
|
# Edge Cases
|
|
15
15
|
|
|
16
16
|
An edge cases document systematically catalogs the unusual, boundary, and error scenarios for a feature. While happy-path flows are typically well-specified, edge cases often get discovered in production — causing bugs, poor user experience, and support burden. Documenting edge cases upfront ensures engineering handles them intentionally and QA knows what to test.
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
2
1
|
---
|
|
3
2
|
name: deliver-launch-checklist
|
|
4
3
|
description: Creates a comprehensive pre-launch checklist covering engineering, design, marketing, support, legal, and operations readiness. Use before releasing features, products, or major updates to ensure nothing is missed.
|
|
@@ -11,6 +10,7 @@ metadata:
|
|
|
11
10
|
frameworks: [triple-diamond, lean-startup, design-thinking]
|
|
12
11
|
author: product-on-purpose
|
|
13
12
|
---
|
|
13
|
+
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
14
14
|
# Launch Checklist
|
|
15
15
|
|
|
16
16
|
A launch checklist is a comprehensive verification document that ensures all functions are ready before releasing a feature or product. It coordinates across engineering, QA, design, marketing, support, legal, and operations to prevent launch-day surprises. Good launch checklists surface blockers early and create shared accountability for launch readiness.
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
2
1
|
---
|
|
3
2
|
name: deliver-prd
|
|
4
3
|
description: Creates a comprehensive Product Requirements Document that aligns stakeholders on what to build, why, and how success will be measured. Use when specifying features, epics, or product initiatives for engineering handoff.
|
|
@@ -11,6 +10,7 @@ metadata:
|
|
|
11
10
|
frameworks: [triple-diamond, lean-startup, design-thinking]
|
|
12
11
|
author: product-on-purpose
|
|
13
12
|
---
|
|
13
|
+
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
14
14
|
# Product Requirements Document (PRD)
|
|
15
15
|
|
|
16
16
|
A Product Requirements Document is the primary specification artifact that communicates what to build and why. It bridges the gap between problem understanding and engineering implementation by providing clear requirements, success criteria, and scope boundaries. A good PRD enables engineering to build the right thing while maintaining flexibility on implementation details.
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
2
1
|
---
|
|
3
2
|
name: deliver-release-notes
|
|
4
3
|
description: Creates user-facing release notes that communicate new features, improvements, and fixes in clear, benefit-focused language. Use when shipping updates to communicate changes to users, customers, or stakeholders.
|
|
@@ -11,6 +10,7 @@ metadata:
|
|
|
11
10
|
frameworks: [triple-diamond, lean-startup, design-thinking]
|
|
12
11
|
author: product-on-purpose
|
|
13
12
|
---
|
|
13
|
+
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
14
14
|
# Release Notes
|
|
15
15
|
|
|
16
16
|
Release notes communicate product changes to users in a way that highlights value and builds excitement. Unlike changelogs (which document what changed technically), release notes translate changes into user benefits. Good release notes help users discover new capabilities, understand improvements, and trust that issues are being addressed.
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
2
1
|
---
|
|
3
2
|
name: deliver-user-stories
|
|
4
3
|
description: Generates user stories with clear acceptance criteria from product requirements or feature descriptions. Use when breaking down features for sprint planning, writing tickets, or communicating requirements to engineering.
|
|
@@ -11,6 +10,7 @@ metadata:
|
|
|
11
10
|
frameworks: [triple-diamond, lean-startup, design-thinking]
|
|
12
11
|
author: product-on-purpose
|
|
13
12
|
---
|
|
13
|
+
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
14
14
|
# User Stories
|
|
15
15
|
|
|
16
16
|
User stories are concise descriptions of functionality from the user's perspective. They capture who needs something, what they need, and why — without prescribing how to build it. Good user stories enable teams to break large features into estimable, deliverable increments while maintaining focus on user value.
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
2
1
|
---
|
|
3
2
|
name: develop-adr
|
|
4
3
|
description: Creates an Architecture Decision Record following the Nygard format to document significant technical decisions, their context, and consequences. Use when making technical choices that affect system architecture, technology selection, or development patterns.
|
|
@@ -11,6 +10,7 @@ metadata:
|
|
|
11
10
|
frameworks: [triple-diamond, lean-startup, design-thinking]
|
|
12
11
|
author: product-on-purpose
|
|
13
12
|
---
|
|
13
|
+
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
14
14
|
# Architecture Decision Record (ADR)
|
|
15
15
|
|
|
16
16
|
An Architecture Decision Record documents a significant technical decision along with its context and consequences. ADRs capture the "why" behind architectural choices so future team members understand the reasoning — especially important when they question why something was done a particular way. This skill follows Michael Nygard's lightweight ADR format.
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
2
1
|
---
|
|
3
2
|
name: develop-design-rationale
|
|
4
3
|
description: Documents the reasoning behind design decisions including alternatives considered, trade-offs evaluated, and principles applied. Use when making significant UX decisions, aligning with stakeholders on design direction, or preserving design context for future reference.
|
|
@@ -11,6 +10,7 @@ metadata:
|
|
|
11
10
|
frameworks: [triple-diamond, lean-startup, design-thinking]
|
|
12
11
|
author: product-on-purpose
|
|
13
12
|
---
|
|
13
|
+
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
14
14
|
# Design Rationale
|
|
15
15
|
|
|
16
16
|
A design rationale document captures the "why" behind design decisions—the context, constraints, alternatives considered, and reasoning that led to a particular solution. While designs themselves show what was built, rationale documents preserve institutional knowledge about why it was built that way.
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
2
1
|
---
|
|
3
2
|
name: develop-solution-brief
|
|
4
3
|
description: Creates a concise one-page solution overview that communicates the proposed approach, key decisions, and trade-offs. Use when pitching solutions to stakeholders, aligning teams on approach, or documenting solution intent before detailed specification.
|
|
@@ -11,6 +10,7 @@ metadata:
|
|
|
11
10
|
frameworks: [triple-diamond, lean-startup, design-thinking]
|
|
12
11
|
author: product-on-purpose
|
|
13
12
|
---
|
|
13
|
+
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
14
14
|
# Solution Brief
|
|
15
15
|
|
|
16
16
|
A solution brief is a concise, one-page document that communicates the proposed solution to a problem. It serves as the bridge between problem understanding and detailed specification, providing enough context for stakeholders to align on the approach without getting lost in implementation details. The one-page constraint forces clarity and prioritization.
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
2
1
|
---
|
|
3
2
|
name: develop-spike-summary
|
|
4
3
|
description: Documents the results of a time-boxed technical or design exploration (spike). Use after completing a spike to capture learnings, findings, and recommendations for the team.
|
|
@@ -11,6 +10,7 @@ metadata:
|
|
|
11
10
|
frameworks: [triple-diamond, lean-startup, design-thinking]
|
|
12
11
|
author: product-on-purpose
|
|
13
12
|
---
|
|
13
|
+
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
14
14
|
# Spike Summary
|
|
15
15
|
|
|
16
16
|
A spike summary documents the results of a time-boxed exploration — a focused investigation to reduce uncertainty before committing to implementation. Spikes answer specific questions like "Can we integrate with this API?" or "Is this technology viable for our use case?" The summary captures findings so the team can make informed decisions without the spike participants needing to repeat explanations.
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
2
1
|
---
|
|
3
2
|
name: discover-competitive-analysis
|
|
4
3
|
description: Creates a structured competitive analysis comparing features, positioning, and strategy across competitors. Use when entering a market, planning differentiation, or understanding the competitive landscape.
|
|
@@ -11,6 +10,7 @@ metadata:
|
|
|
11
10
|
frameworks: [triple-diamond, lean-startup, design-thinking]
|
|
12
11
|
author: product-on-purpose
|
|
13
12
|
---
|
|
13
|
+
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
|
|
14
14
|
# Competitive Analysis
|
|
15
15
|
|
|
16
16
|
A competitive analysis provides structured insight into the competitive landscape, helping product teams understand where they stand relative to alternatives and identify opportunities for differentiation. Rather than exhaustively cataloging every competitor, an effective analysis focuses on actionable insights that inform product strategy.
|