setup-00c9d0 — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited setup-00c9d0 (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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:
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:
{term 1}{term 2}{term 3}
{Populate with the items gathered in Batch 3, or leave as an empty "_(none yet)_" placeholder.}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 reportsReports 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.
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:
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 sessionsUse 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.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.