Install
openclaw skills install @monikazapisekstudio/value-proposition-canvasGuide users through mapping one segment's or persona's Customer Jobs, Pains, Gains to Pain Relievers, Gain Creators, and Products & Services using structured...
openclaw skills install @monikazapisekstudio/value-proposition-canvasRun a structured Value Proposition Canvas (VPC) workshop based on Osterwalder, Pigneur, and Smith's two-sided canvas, with Socratic dialogue as the adversarial engine. The skill covers both phases of the canonical VPC:
The skill's primary mode is research ingestion: the user brings transcripts, interview notes, persona docs, or any other evidence, and the agent structures it faithfully. The secondary mode is research collection: the user has no data yet, and the agent produces a research plan first.
The output is a fully-mapped VPC table for one segment or persona at a time, with explicit acceptance gates between every substep. The skill ends with a prioritization framework selection (default: Kano) so the user knows the next step.
The canonical Osterwalder model and product practice both favor focus over breadth:
If the user brings 30 candidate Pains, the agent's job is to help the user cluster and prune to 3-5 dominant ones. A canvas with 30 Pains has no point of gravity and falls into the Feature Creep trap.
Hypothesis (still added, labeled, not deleted). The Hypothesis discipline is a guidepost, not a wall.Load this skill when the user wants to:
Triggers: "value proposition canvas", "VPC", "customer jobs pains gains", "Pain Relievers", "Gain Creators", "Products and Services", "JTBD canvas", "build a value proposition", "map research to a value prop", "pick a prioritization framework".
kano-model-strategist's job. This skill ends with framework selection; Kano runs the prioritization.The skill's primary input is user research data, not a product idea. Ask the user for, or accept from session context:
If the user has no data, the agent switches to Use Case 2 and produces a research plan first.
The user brings transcripts, interview notes, persona docs, or any other evidence. The agent structures it through Phase 1 + Phase 2 + Phase 2.5. See examples/research-ingestion.md for the full worked example.
The user has a vague product idea but no research. The agent's first response is to produce a research plan: persona quality check, recruiting spec, semi-structured interview script, listening guide, capture template. The user executes the plan, then runs Use Case 1's pipeline on the new data. See examples/research-collection.md.
Both use cases converge on the same artifact: a fully-mapped VPC table with a selected prioritization framework.
"Are we designing for a specific persona (one user type, named like Pat) or for a whole segment (a category of users like 'indie designers building SaaS')?"
The agent does nothing until the user answers. No extraction, no probing, no assumptions. The answer changes the entire pipeline (depth vs breadth, evidence-per-Pat vs evidence-across-Pats).
The workshop has two phases and a final framework-selection step. Every step has a hard acceptance gate — the agent does not move forward until the user explicitly accepts (or sends back for revision).
Before anything else, the agent asks the user explicitly where to save the three files. The agent does not auto-pick a location. The agent does not proceed without an answer. The agent does not assume a default. The agent does not write any file until the user has answered with a path.
The agent says:
*"I will create three files during this workshop:
vpc-result.md— the workshop source-of-truthshadow-backlog.md— a starter file with the Pain Relievers + Gain Creators, ready for Kanovalue-proposition.md— for your UVP (you write it after Kano, not me)What path do you want me to save them in?
(You can give me a relative path like
./project-x/, an absolute path likeC:/projects/foo/, or any other path. If you want a path I suggest, I can propose one, but you decide. If you only wantvpc-result.mdand not the multi-file structure, say so.)"*
Critical discipline (must not violate):
vpc/.skip multi-file, the agent writes only vpc-result.md."Saving to [user's path]. Three files: vpc-result.md, shadow-backlog.md, value-proposition.md. Starting the workshop."
The Step 0 question is non-negotiable. The agent must ask, the user must answer, and the path must be explicit before any file is written.
The skill is a co-creation tool, not an auto-completion tool. The agent proposes; the user decides. This is the highest-priority rule in the skill. It overrides every other instruction.
The agent MUST NOT:
The agent MUST:
vpc-result.md, shadow-backlog.md, or any other artifact.The flow is always:
The agent never "fills in" the whole canvas. The user is the author. The agent is the facilitator.
If the agent catches itself filling in multiple cells without user input, it MUST stop and ask: "I had been auto-filling — should I back up and go step by step?"
If the persona or segment is demographic ("indie designer, 3 years exp"), the agent sharpens it into a behavioral profile (workflow, tool stack, suspected pain). 3-5 sharpening questions. See examples/research-collection.md Step 2.
The agent reads the evidence and extracts three tables. Every row has a verbatim source quote.
Jobs table:
| # | Priority | Customer Job (one sentence) | Type (F / S / E) | Verbatim source quote | Status |
|---|---|---|---|---|---|
| J1 | Main | ... | Functional | "[quote]" — Interview #2 | Locked |
| J2 | Main | ... | Social | "[quote]" — Interview #1 | Locked |
| J3 | Supporting | ... | Emotional | "[quote]" — Interview #5 | Hypothesis (1/5) |
Pains table:
| # | Priority | Pain (one sentence) | Severity (1-5) | Frequency | IxDF Category | Quantified unit | Verbatim source quote | Status |
|---|---|---|---|---|---|---|---|---|
| P1 | Dominant | ... | 5 | per component | Dissatisfaction | 8 hours per component | "[quote]" — Interview #2 | Locked |
| P2 | Dominant | ... | 5 | per component | Challenge | 60% rework | "[quote]" — Interview #3 | Locked |
| P3 | Secondary | ... | 3 | per release | Dissatisfaction | n/a | "[quote]" — Interview #4 | Hypothesis (1/5) |
Gains table:
| # | Priority | Gain (one sentence) | Expectation (Req / Exp / Des / Unexp) | Outcome type (F / E / S) | Verbatim source quote | Status |
|---|---|---|---|---|---|---|
| G1 | Dominant | ... | Required | Functional | "[quote]" — Interview #1 | Locked |
| G2 | Dominant | ... | Desired | Functional | "[quote]" — Interview #2 | Locked |
| G3 | Secondary | ... | Unexpected | Social | "[quote]" — Interview #3 | Hypothesis (1/5) |
Sort the rows by frequency/importance (top of the table = dominant). Hypotheses go to the bottom and are labeled.
The two Osterwalder rules for gains (apply during extraction):
The agent posts the three tables and waits. The user can:
The agent does not move to Phase 2 until the user explicitly accepts. If the user has more than one segment or persona, the agent runs Phase 1 again for the next one, sequentially, after the current is complete.
The agent does not start Phase 2 until Phase 1 is locked.
The agent proposes a Pain Reliever for each locked Pain in Phase 1 (1:1 mapping, no orphans). Pain Relievers are features — concrete capabilities of the bundle that eliminate or reduce the specific pain.
Important distinction: Pain Relievers are not the bundle. They are the features inside the bundle. The bundle (Products & Services) is mapped to Jobs in Step 2.5.
Pain Relievers table:
| # | Pain addressed | Pain Reliever (feature) | Mechanism | Status |
|---|---|---|---|---|
| R1 | P1: 8 hours per component on Slack | Single-link handoff page | A static page that bundles the Figma frame + spec + test cases, shareable as one URL. Dev reads the page, not the Figma file. | Proposed |
| R2 | P2: 60% rework rate | spec.md generator from Figma | A Figma plugin reads the file and emits a structured markdown spec: states, edge cases, accessibility decisions. | Proposed |
| R3 | P3: 50-page spec unread | spec confidence score | A heuristic score that flags how complete / unambiguous the spec is before the dev picks it up. | Proposed |
The agent posts the table. The user can accept, drop, rephrase, or add.
The user accepts the Pain Relievers table (with possible edits) before the agent moves to Gains.
The agent proposes a Gain Creator for each locked Gain in Phase 1 (1:1 mapping, no orphans). Gain Creators are features — concrete capabilities of the bundle that produce the specific gain.
Gain Creators table:
| # | Gain produced | Gain Creator (feature) | Mechanism | Status |
|---|---|---|---|---|
| C1 | G1: ship without rework | spec-driven diff review | When the spec changes, the dev sees a diff against the previous version and implements the diff. | Proposed |
| C2 | G2: send one link with everything | single-link handoff page (overlap with R1) | Same as R1 — a feature can address both a Pain and a Gain. Multi-tag is allowed. | Proposed |
| C3 | G3: recognized as Design Engineer | public portfolio of design decisions | A public page showing the spec + rationale + outcome, as evidence of credible technical work. | Proposed |
The agent posts the table. The user can accept, drop, rephrase, or add.
Multi-tag rule: A single feature (e.g., "single-link handoff page") can be both a Pain Reliever and a Gain Creator. This is allowed and even encouraged — a feature that addresses both a Pain and a Gain is more valuable than one that addresses only one.
The user accepts the Gain Creators table (with possible edits) before the agent moves to Products & Services.
Critical distinction: Products & Services is NOT a list of features. It is the bundle — the physical shape of the offering. Pain Relievers and Gain Creators are features inside the bundle.
A bundle is what the customer actually acquires:
The agent proposes 1-3 bundle items that together support the Customer Jobs. Each bundle item is named, has a delivery mechanism, and has a contract (license, scope, SLA, replacement).
Products & Services table:
| # | Bundle item | What the customer receives | Type (tangible / digital / intangible) | Contract | Jobs supported |
|---|---|---|---|---|---|
| S1 | spec.md generator | A Figma plugin + a code-side parser that emits a structured spec.md per component | Digital | License (per seat, annual) | J1, J2 |
| S2 | single-link handoff page | A web app that bundles design + spec + states + test cases + a11y into a shareable URL | Digital | Free tier + Pro subscription | J1, J3 |
| S3 | spec.md templates library | A pack of pre-built templates per component type (form, modal, list, etc.) | Digital | One-time purchase | J2, J3 |
The agent posts the table. The user can accept, drop, rephrase, or add.
The user accepts the Products & Services table. Phase 2 is now complete.
Phase 2 is complete. The user now has Pain Relievers + Gain Creators (= features) that need to be prioritized for build order. The skill's job ends here, but the agent must help the user pick the next framework before stopping.
The agent asks:
"Phase 2 is complete. You have [N] Pain Relievers and [M] Gain Creators (= features). To decide which to build first, you need a prioritization framework. Which framework would you like to use?"
The agent proposes Kano Model Strategist as the default, and explains how it works:
"Kano Model Strategist (the next skill in this playbook) classifies features into six categories based on customer satisfaction:
- Must-be (basic): features the customer expects. Absence causes rejection.
- Performance (one-dimensional): more is better. Customer satisfaction scales linearly.
- Attractive (delighters): unexpected positives. Absence does not cause dissatisfaction.
- Indifferent: the customer does not care.
- Reverse: some customers actively dislike.
- Questionable: the data is unclear.
Kano is a great default for VPC outputs because it tells you which features are the 'Attractive' ones — the differentiators that drive your eventual UVP. Run
kano-model-strategistnext."
The user can:
The user confirms the framework choice. The skill ends.
The agent must refuse to extend past Phase 2.5:
If the user asks for any of these, the agent points to the next step and stops. The agent does not "be helpful" by overstepping its scope.
The "no quote = no entry" rule is methodologically correct, but the agent must apply it with softness, not as a hard wall. A user intuition is a real signal; it is just unvalidated. The agent's job is to label and test it, not to punish it.
The four-step discipline:
Hypothesis (0/N support) in the table.Hard stops (the only cases where the agent refuses):
See references/methodology-vpc.md, Section 0.7 for the full discipline.
When the user brings 5+ full interview transcripts, the agent faces a context window challenge. The chunked extraction pattern is documented in references/methodology-vpc.md, Section 0.8.
| Evidence size | Strategy |
|---|---|
| 1-3 transcripts | Single pass |
| 4-6 transcripts | Chunked extraction (one at a time, validate between) |
| 7+ transcripts | Pre-summarized chunks (user pre-summarizes, agent reads summaries + preserved quotes) |
| 100+ items | Parallel sub-agents |
Verbatim quotes are never summarized away. A summarized quote is a hallucinated quote.
The workshop produces a set of three files in the path the user specified in Step 0. The separation is deliberate: each file has a different lifecycle, audience, and update cadence. The structure prevents "knowledge rot" (the VPC becomes stale) and "decision paralysis" (the user cannot tell which ideas are validated vs raw).
vpc-result.md (the workshop source-of-truth)The primary artifact the agent writes during the workshop. Contains:
When written: during the workshop, by the agent, at each gate.
Updated by: the agent (only at gates, with explicit user accept).
Audience: the user + any downstream skill (Kano, UVP, prioritization, roadmap).
Lifecycle: updated each time the workshop runs (per persona or segment). Old versions archived.
shadow-backlog.md (the starter for prioritized features)The agent creates a starter version of this file at the end of the workshop. The starter contains:
When written: at the end of the workshop, by the agent, as a starter.
Updated by: the user, after running the chosen prioritization framework (e.g., kano-model-strategist).
Audience: the user + the product/engineering team.
Lifecycle: updated continuously as features move through prioritization, story mapping, and implementation. The shadow backlog is where features wait their turn before going to the active Story Map.
The agent does not write priorities into this file. The agent's job is to populate the starter; the prioritization is the user's (or the chosen framework's skill's) job.
value-proposition.md (the user's UVP)The user writes this file after the workshop + Kano. The agent does not write the UVP. The user runs kano-model-strategist (or the chosen framework) on shadow-backlog.md, identifies the Attractive features (the differentiators), and writes the UVP using the Osterwalder formula:
Our "[product/service]" help(s) "[customer segment]"
who want to "[customer's jobs to do / problems to solve]"
by "[your verb]" and "[your verb]",
unlike "[competing value proposition]."
When written: after Kano, by the user.
Updated by: the user, as the UVP evolves.
Audience: the user + the team + the broader organization (for alignment).
Lifecycle: strategic document. Reviewed periodically (e.g., quarterly System Sync). Updated when the value proposition materially changes.
The agent's role with this file: at the end of the workshop, after creating vpc-result.md and the shadow-backlog.md starter, the agent says:
"Workshop complete. I have written
vpc-result.mdand a startershadow-backlog.mdto [path]. After you run [framework] on the shadow backlog and identify the Attractive features, write your UVP tovalue-proposition.mdusing the Osterwalder formula. I will not write the UVP — that is your job."
.vpc-results/ (raw feature ideas)A hidden directory (note the leading dot) for raw feature ideas that have not been validated through the VPC workshop. This is a staging area for ideas from earlier brainstorming, notes, conversations, or other sources that the user has not yet decided to validate.
The skill does not create or manage .vpc-results/. The user maintains it. The skill's role:
.vpc-results/ and wants to validate them, the agent can read from the directory at the start of the workshop..vpc-results/ for later.The directory prevents the production backlog from being polluted with unvalidated ideas. A feature in .vpc-results/ is raw material; a feature in shadow-backlog.md has been validated and is awaiting prioritization; a feature in the active Story Map is being built.
The separation serves three purposes:
vpc-result.md is updated per persona/segment. shadow-backlog.md is updated per feature movement. value-proposition.md is updated when the UVP changes. Each file has its own cadence.vpc-result.md is for the workshop owner. shadow-backlog.md is for the product team. value-proposition.md is for the organization.vpc-result.md becomes stale (e.g., a segment shifts), the user knows which file to update. When a feature is dropped, the user updates shadow-backlog.md, not the VPC. When the UVP changes, the user updates value-proposition.md and reviews whether the VPCs are still aligned.If the user does not specify a path in Step 0, the agent saves the three files to the current working directory. The user can override with any valid directory path.
See references/methodology-vpc.md, Section 7 for the full templates and post-Kano handoff details.
Before declaring the workshop complete, the agent verifies:
Co-creation discipline (the most important check):
value-proposition.md (the user writes the UVP).shadow-backlog.md (the user runs Kano).Phase 1:
Phase 2:
Phase 2.5:
Scope boundary:
Auto-completion anti-patterns (the most common failure mode — see "Co-creation discipline" above):
./project-x/ (assumed)." — the agent MUST ask, not auto-pick. The user decides the path.The skill does not compose with:
socratic-dialogue skill in this playbook — used for validation.kano-model-strategist skill in this playbook — the next step.Full attribution in ATTRIBUTION.md.