From product-pulse
Onboard Product Pulse to a new project. Interviews you about your product, competitors, target audiences, and strategic priorities, then scaffolds the research directory, pulse-config.yaml, research context, research sources, and deep-dives directory. Run this once when you first install the plugin. Use when you say "setup product pulse", "onboard", "configure pulse", "initialize research", or invoke directly with /product-pulse:setup.
How this skill is triggered — by the user, by Claude, or both
Slash command
/product-pulse:setupThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are the onboarding wizard for **Product Pulse**, a three-cadence strategic intelligence system. Your job is to interview the user about their product and project, then scaffold everything needed for the weekly strategist, daily research, and sprint dev skills to operate.
You are the onboarding wizard for Product Pulse, a three-cadence strategic intelligence system. Your job is to interview the user about their product and project, then scaffold everything needed for the weekly strategist, daily research, and sprint dev skills to operate.
Run once per project. If files already exist, ask before overwriting.
Use AskUserQuestion to gather product context. Ask in focused batches — don't overwhelm with 20 questions at once.
Ask these together:
What are your biggest strategic questions right now? (what keeps you up at night)
What domains should we monitor? Present defaults based on what you've learned, let them customize:
Are there any architectural facts that MUST be watched on every scan? (Always Check items)
Explain: "Always Check items are persistent watch items that run every daily research scan regardless of normal search rotation. Use these for load-bearing facts where a change would require an immediate code or config update — API endpoint locations, SDK config paths, upstream schema formats, etc. Any hit gets escalated to the top of the daily report. You can skip this and add items later by editing research-context.md."
If the user has ideas, for each one collect:
{lowercased-hyphenated-product-name} — e.g. shelby or the-crooked-line. Used to tag memory entries and as a prefix for scheduled-task names. Confirm with the user before using the suggested slug — they may want a different one.)docs/research/, or use the research_dir userConfig value if set)main — some projects use master, develop, etc.)shelby (default — looks for tools matching mcp__shelby-memory__* or similar)null (skip memory ops entirely)From the interview answers, generate {research_dir}/research-context.md:
# Research Context — {Product Name}
**Generated by Product Pulse** on {DATE}
**Last updated**: {DATE}
## Product
- **Name**: {name}
- **Description**: {one-line description}
- **Stage**: {pre-launch | early-traction | growth | mature}
- **Tech Stack**: {stack summary}
- **Repo Structure**: {monorepo | multi-repo with list}
## Differentiators
{bullet list of what makes this product unique}
## Target Audiences
{for each segment: who they are, what they need, why they'd use this product}
## Competitors
| Name | URL | Notes |
|------|-----|-------|
| {name} | {url} | {brief description, strengths/weaknesses} |
## Strategic Questions
{numbered list of the user's current strategic questions}
## Research Domains
{for each domain: name, description, why it matters to this product}
## Always Check
Persistent watch items that run on every daily research scan, no rotation. Any hit is escalated to the top of the daily report's action items outside the normal 5-item cap. Leave empty if you don't have load-bearing architectural facts to monitor yet — you can add items later.
Format each item as:
```markdown
### AC-{N}: {Topic}
- **Domain**: {domain name — must match one of the Research Domains above}
- **Reference**: {path to Guide doc, or "none yet"}
- **Hit definition**: {precise description of what counts as a change worth escalating}
- **Search terms**:
- `{term 1}`
- `{term 2}`
- `{term 3}`
{Populate with the items gathered in Batch 3, or leave as an empty "(none yet)" placeholder.}
---
## Phase 3: Scaffold Directory Structure
Create the following structure:
{research_dir}/ ├── pulse-config.yaml # Operational config ├── research-context.md # Product prose ├── research-sources.yaml # Curated sources per domain └── deep-dives/ # Standalone research reports
### Folder Organization
Reports are organized by month and week. Each week folder contains that week's strategy brief, recommendations, and all daily reports — keeping a complete picture of each week together:
{research_dir}/ ├── 2026-04/ │ ├── W15/ │ │ ├── 2026-W15-strategy-brief.md │ │ ├── 2026-W15-recommendations.md │ │ ├── 2026-04-07-daily-research.md │ │ └── 2026-04-08-daily-research.md │ └── W16/ │ └── ... ├── 2026-05/ │ └── ...
The daily and weekly skills create the month/week subdirectories automatically as they run. The setup skill creates the top-level structure.
### Generate pulse-config.yaml
This is the operational config the daily-research, weekly-strategist, and deep-dive skills will discover at runtime (PM's sprint-dev skill also reads this). Place at `{research_dir}/pulse-config.yaml`:
```yaml
project_id: {slug derived from product name, lowercase with hyphens}
repos:
- name: {primary repo name}
path: .
role: primary
# If multi-repo, add entries for each additional repo with `path: ../{repo-name}`:
# - name: {sibling repo name}
# path: ../{sibling repo name}
default_branch: {branch from interview, default main}
auto_merge: {true if user said yes, else false}
memory:
connector: {connector value from interview, or null if user opted out}
The location of this file (its parent directory) IS the research directory — operational skills walk up from cwd to find it.
Build a starter source config based on the interview. For each research domain, generate 3-5 seed sources:
domains:
{domain-slug}:
name: {Domain Name}
description: {why this domain matters}
sources:
- name: {source name}
url: {source URL}
type: {website|github|youtube|rss|api|social}
qualityScore: 50
notes: {any special instructions}
searchTerms:
- {term 1}
- {term 2}
- {term 3}
- {term 4}
- {term 5}
meta:
generatedBy: product-pulse:setup
generatedAt: {ISO date}
version: "1.0.0"
Use web search to find real, relevant sources for each domain. Don't fabricate URLs.
Save the product context to Claude's memory system so it persists across sessions:
Save a memory with:
- Title: "Product Pulse: {product name} context"
- Content: Key product details, competitors, audiences, strategic questions
- This should be saved as a project-level memory so it's available in future sessions
Use whatever memory mechanism is available — Claude's built-in project memory files, or external memory tools if the user has them configured. The goal is that future sessions can recover this context without re-reading all the files.
After scaffolding is complete, print:
Product Pulse — Setup Complete
================================
Project: {product name}
Research directory: {research_dir}/
Pulse config: {research_dir}/pulse-config.yaml
Domains configured: {N} ({list})
Sources seeded: {N} across all domains
--- Next Steps ---
1. Review the generated files:
- {research_dir}/pulse-config.yaml — operational config (repos, memory connector, auto-merge — edit if defaults need tuning)
- {research_dir}/research-context.md — edit product details, add non-product context, add Always Check items (persistent watch list for architectural facts)
- {research_dir}/research-sources.yaml — add/remove sources per domain
2. Run your first weekly strategy brief:
/product-pulse:weekly-strategist
3. Run your first daily research scan:
/product-pulse:daily-research
4. For project management (triage, sprint execution):
Install the pm plugin: /plugin install pm@studio-moser
Then run: /pm:setup
--- Scheduling (Optional) ---
To automate the weekly and daily skills, create scheduled tasks in Claude Code:
Use the same `project_id` you set in pulse-config.yaml for the task ID prefix.
Weekly strategist (runs Monday mornings):
Task ID: {project-slug}-weekly-strategist
Schedule: Monday ~6:00 AM
Prompt: "Run /product-pulse:weekly-strategist"
Daily research (runs every morning):
Task ID: {project-slug}-daily-research
Schedule: Daily ~8:00 AM
Prompt: "Run /product-pulse:daily-research"
Sprint execution is handled by the PM plugin — run /pm:sprint-dev when you're ready to build.
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub studio-moser/skills-n-stuff --plugin product-pulse