JTBD discovery techniques adapted for AI product owner context. Four Forces extraction, job dimension probing, question banks, and anti-patterns for interactive feature discovery conversations.
npx skills add https://github.com/nWave-ai/nWave --skill nw-jtbd-interviews
Use when conducting interactive discovery conversations to uncover jobs users are trying to accomplish. Adapted from Bob Moesta's Switch interview methodology for AI-guided feature discovery — the user describes their situation, Luna extracts forces and jobs through structured questioning.
Map user responses to Four Forces of Progress. Each force has characteristic language patterns to listen for and prompts to surface them.
User says: "I'm frustrated that..." | "It keeps breaking when..." | "I waste so much time on..." | "The last straw was when..."
Prompts:
User says: "I want to be able to..." | "I imagine being able to..." | "My colleague said it could..." | "I need it to..."
Prompts:
User says: "I'm worried that..." | "What if it doesn't..." | "I'm not sure I can learn..." | "The risk is..."
Prompts:
User says: "I'm used to..." | "At least with the old way, I know..." | "I've already invested..." | "My team is comfortable with..."
Prompts:
After extracting forces, assess the balance:
| Balance | Meaning | Action |
|---------|---------|--------|
| Strong Push + Strong Pull | High motivation to switch | Proceed — real demand |
| Strong Pull only | Shiny feature syndrome | Probe for Push — is there real pain? |
| Strong Push + Weak Pull | Pain without clear solution | Explore solution space before committing |
| Strong Anxiety or Habit | Adoption barriers | Address anxiety in design; plan migration path |
Critical rule: Stories driven only by Pull without Push are low-priority candidates. Real jobs have real frustrations.
The practical task the user is trying to accomplish.
Questions:
How the user wants to feel during and after.
Questions:
How the user wants to be perceived by others.
Questions:
Use these patterns to go deeper when surface-level answers are insufficient.
| Technique | Pattern | When to Use |
|-----------|---------|-------------|
| Timeline probe | "When did you first realize this was a problem?" | User gives vague frustration without specifics |
| Contrast probe | "How is this different from [related thing]?" | User conflates multiple concerns |
| Consequence probe | "What happens if you don't solve this?" | User can't articulate urgency |
| Concrete probe | "Can you give me a specific example?" | User speaks in generalities |
| Inversion probe | "What would make this feature useless to you?" | User gives only positive requirements |
| Scale probe | "How often does this happen? Daily? Weekly?" | User describes pain without magnitude |
| Anti-Pattern | Problem | Fix |
|--------------|---------|-----|
| Asking hypotheticals | People are poor predictors of future behavior | Ask about past events that already happened |
| Yes/no questions | Shallow data, no insight | Open-ended: "Tell me about a time when..." |
| Leading the witness | Contaminates data | Stay neutral; do not suggest answers or validate |
| Asking about features | Gets wants, not jobs | Ask about struggles and desired progress |
| Rushing to solutions | Misses real job | 80% of interview on problem, 20% on solutions |
| Accepting first answer | Surface-level understanding | Probe deeper: "Can you say more about that?" |
| Projecting emotions | Assumes how user feels | Ask directly: "How did that make you feel?" |
| Skipping social dimension | Misses organizational context | Always ask who else is affected or aware |
After extracting forces and dimensions, synthesize into job story format:
When [situation/push], I want to [motivation/pull], so I can [outcome/functional+emotional].
Validate with user: "Did I capture that correctly?" Refine until the user confirms.
If multiple jobs emerge, note each separately — opportunity scoring (load jtbd-opportunity-scoring) determines priority.
jtbd-core skilljtbd-opportunity-scoring skilljtbd-bdd-integration skillIntegration with protocols.io API for managing scientific protocols. This skill should be used when working with protocols.io to search, create, update, or publish protocols; manage protocol steps and materials; handle discussions and comments; organize workspaces; upload and manage files; or integrate protocols.io functionality into workflows. Applicable for protocol discovery, collaborative protocol development, experiment tracking, lab protocol management, and scientific documentation.
Analyzes job descriptions and generates tailored resumes that highlight relevant experience, skills, and achievements to maximize interview chances
Generate Excalidraw diagrams from natural language descriptions. Use when asked to "create a diagram", "make a flowchart", "visualize a process", "draw a system architecture", "create a mind map", or "generate an Excalidraw file". Supports flowcharts, relationship diagrams, mind maps, and system architecture diagrams. Outputs .excalidraw JSON files that can be opened directly in Excalidraw.
Build and distribute Expo development clients locally or via TestFlight
Use when you have a written implementation plan to execute in a separate session with review checkpoints
Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.
Benchling R&D platform integration. Access registry (DNA, proteins), inventory, ELN entries, workflows via API, build Benchling Apps, query Data Warehouse, for lab data management automation.
Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.
Take nwave-ai/nw-jtbd-interviews from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.