Setup
Skill Studio-Moser/skills-n-stuff/plugins/product-pulse/skills/setup
Product research, market intelligence, and content tools for AI-native teams
npx -y skills add Studio-Moser/skills-n-stuff --skill setupAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
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.
SKILL.md
10.9 KB, ~2.6k tokens by cl100k_base, as published. Nobody here has run it
Product Pulse — Setup
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.
Phase 1: Interview
Use AskUserQuestion to gather product context. Ask in focused batches — don't overwhelm with 20 questions at once.
Batch 1: Product Identity
Ask these together:
- What's your product? (name, one-line description, what it does)
- What stage are you at? (Options: Pre-launch, Early traction, Growth, Mature)
- What's your tech stack? (languages, frameworks, key infrastructure)
Batch 2: Market Position
- Who are your top 3-5 competitors? (names, URLs if known)
- What makes you different? (key differentiators, unique value)
- Who is your target audience? (user segments, personas)
Batch 3: Strategic Focus
-
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:
- Industry & market trends
- Competitive landscape
- Audience & customer signals
- Growth & distribution channels
- Product & technical capabilities
- (Offer to add custom domains relevant to their space)
-
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:
- Topic (short name)
- Which domain it belongs to (match to one of the configured domains)
- What counts as a hit (precise definition — the sub-agent uses this to decide when something is worth escalating)
- Search terms (3-6 specific queries that must run every scan)
- Reference doc (optional path to a Guide doc that captures the current known state; create later if needed)
Batch 4: Configuration
- What's your project_id slug? (suggested:
{lowercased-hyphenated-product-name}— e.g.shelbyorthe-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.) - Where should research files live? (default:
docs/research/, or use theresearch_diruserConfig value if set) - Which git branch should research be committed to? (default:
main— some projects usemaster,develop, etc.) - Is this a monorepo or multi-repo project? If multi-repo, which repos and what does each one do?
- Auto-merge research PRs? (default: yes — research output PRs are auto-merged when mergeable; you can review the PR if you want by setting this to no)
- Memory connector? Some users want the plugin to capture briefs and decisions to a memory MCP. Options:
shelby(default — looks for tools matchingmcp__shelby-memory__*or similar)null(skip memory ops entirely)- Any other prefix matching your memory MCP's tool names
- Do you have any existing research, competitive analysis, or strategy docs? (we can seed from them)
Phase 2: Build Research Context
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.
Generate research-sources.yaml
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.
Phase 4: Save to Memory
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.
Phase 5: Print Next Steps
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.
Edge Cases
- Files already exist: Ask before overwriting. Offer to merge with existing content.
- User doesn't know competitors: That's fine — leave the table sparse and note "competitor discovery" as a priority for the first weekly run.
- User has existing research: Offer to read their existing docs and seed the research context from them.
- Multi-repo project: Note all repos in research-context.md. PM's sprint-dev skill will use this for routing.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most project setup skills give in ~2.6k tokens
Counted across 999 of the 1,637 authors here whose files we hold, read 2026-08-07
- Ask one question at a timein 29 of 999, across 28 files
- Detect the package manager from lockfilesin 28 of 999, across 9 files
- Present findings to the userin 26 of 999, across 5 files
- Explore current repo statein 24 of 999, across 3 files
- Update the agent skills block in place if it existsin 24 of 999, across 3 files
- Install husky lint-staged and prettierin 23 of 999, across 4 files
- Create the lintstagedrc filein 22 of 999, across 3 files
- Commit all changed filesin 22 of 999, across 3 files
- Run lint-staged to verify it worksin 22 of 999, across 3 files
- Create the husky pre-commit filein 21 of 999, across 2 files
- Create a prettierrc file if missingin 21 of 999, across 2 files
- Initialize huskyin 21 of 999, across 2 files
Said here and by no other author read
- interview the user in focused batches
- ask for product identity, market position, and strategic focus
- ask for project id, directory, and git branch
- ask about memory connector configuration
- generate the research context markdown file
- scaffold the research directory structure
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.