product-team/skills/product-skills/SKILL.md
Use when coordinating product work across the 12 bundled product sub-skills (RICE, OKRs, UX research, design tokens, competitive teardown, analytics, experiments, discovery, roadmaps, spec-to-repo, landing pages, SaaS scaffolding) or the 4 standalone product-team plugins (user stories, Apple HIG, code-to-PRD, research summarizer). Triggers on 'help me prioritize', 'plan a product experiment', 'we ship features nobody uses', 'run the discovery loop', 'is our OST sound'. Forks context to route to one sub-skill via a deterministic signal router and returns a digest; can also drive a continuous-discovery loop (Torres cadence tracker + OST linter as machine gates) or a full goal→plan→execute→verify→close run through the repo-wide agent-harness. Distinct from project-management (how to deliver vs what to build), marketing/landing (from-scratch pages), and engineering/agent-harness (the generic loop engine this orchestrator plugs into).
npx skillsauth add alirezarezvani/claude-skills product-skillsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This orchestrator does two jobs. Routing: fork context, classify a product inquiry
with scripts/product_goal_router.py across all 16 product-team lanes (12 bundled + 4
standalone plugins), run exactly one, return a digest. Looping: run product work as
bounded agentic loops with machine-checkable gates — the continuous-discovery loop
(weekly cadence scored by discovery_cadence_tracker.py, tree structure enforced by
ost_linter.py) and goal-scale runs through the repo-wide agent-harness.
| Symptom | Sub-skill |
|---|---|
| "Prioritize features / RICE / PRD" | product-manager-toolkit |
| "OKRs, strategy cascade" | product-strategist |
| "Personas, usability, research synthesis" | ux-researcher-designer |
| "Design tokens, WCAG contrast" | ui-design-system |
| "Competitor matrix, teardown" | competitive-teardown |
| "Retention, cohorts, funnels, KPIs" | product-analytics |
| "A/B test, sample size, hypothesis" | experiment-designer |
| "Discovery, assumptions, opportunity trees" | product-discovery |
| "Roadmap comms, release notes, changelog" | roadmap-communicator |
| "Spec → runnable repo" | spec-to-repo |
| "Landing page (Next.js/Tailwind)" | landing-page-generator |
| "SaaS boilerplate" | saas-scaffolder |
| "User stories, sprint capacity" | agile-product-owner (standalone) |
| "Apple HIG audit" | apple-hig-expert (standalone) |
| "PRD from an existing codebase" | code-to-prd (standalone) |
| "Summarize papers/articles" | research-summarizer (standalone) |
python3 scripts/product_goal_router.py --text "<the goal>" --output json
Exit 0 → route_to names the skill (with skill_path, including the standalone
plugins): load its SKILL.md and follow its workflow. Exit 2 → ask ONE clarifying question
naming the listed candidates, with a recommended answer. Exit 3 → no signal: ask the user
to restate the goal with the deliverable named. Never guess silently; never silently
chain — digest first, confirm, then chain.
Modern discovery is a weekly habit, not a project phase (Torres). Run it as a bounded loop with two machine gates:
discovery_log.json (interviews, assumption tests; shape in
assets/sample_discovery_log.json) and score the cadence:
python3 scripts/discovery_cadence_tracker.py --input discovery_log.json
Refuses on < 2 interviews (exit 5) — there is no cadence to measure yet. Output:
health 0–100, verdict HEALTHY/AT-RISK/DORMANT, named gaps, and next_loop_action.next_loop_action IS the choice: book the touchpoint,
re-anchor the guide on the outcome, or test the top untested assumption (route to
product-discovery's assumption_mapper for prioritization).python3 scripts/ost_linter.py --input ost.json # exit 2 = NEEDS-REWORK, fix before citing the tree
Rules: one measurable outcome root (O1), opportunities are needs not features (O2),
targeted opportunities compare ≥ 2 solutions (O3), every solution has an assumption
test (O4), no orphan solutions (O5 — the feature-factory tell).experiment-designer (build the
A/B gate) or product-manager-toolkit (PRD); DORMANT for 4+ weeks → escalate to the
product lead by name — do not quietly let discovery die.For build-scale goals ("turn this validated spec into a repo and verify it"), compile through the repo-wide harness instead:
python3 engineering/agent-harness/skills/agent-harness/scripts/goal_compiler.py \
--goal "<goal>" --manifest engineering/agent-harness/skills/agent-harness/assets/harnesses/product-team.json \
--out .agent-harness/plan.json
The domain's three strongest close-out gates plug in as task verifications:
../spec-to-repo/scripts/validate_project.py (exit 0), code-to-prd's golden
expected_outputs/, and research-summarizer's citation-count check.
ost_linter.py
exits 0; no insight is asserted from a single participant (anecdote, not insight).../experiment-designer/scripts/sample_size_calculator.py, never gut feel; report the
MDE with the verdict.One per turn, recommended answer, canon citation. Never run a sub-skill or start a loop until the lane-defining decision is locked:
--sample so the shape is visible first.project-management.engineering/agent-harness; this orchestrator is
the product-domain adapter (router + discovery gates).marketing/landing builds from-scratch marketing pages;
landing-page-generator here scaffolds product Next.js/TSX pages.| Mode | Artifact |
|---|---|
| Route | Sub-skill's own artifact + ≤ 200-word digest with one canon-cited challenge |
| Discovery loop | discovery_log.json + cadence report + linted ost.json |
| Harness run | .agent-harness/plan.json + state.json + close handoff |
engineering/agent-harness · Loop vocabulary: loop-librarydevelopment
Use when someone wants to run a weekly review, close open loops, audit stalled projects and commitments, get their system back to trusted, restart a lapsed review habit, or says "/cs:weekly-review". Walks David Allen's three-phase loop — GET CLEAR, GET CURRENT, GET CREATIVE — with deterministic scripts that inventory open loops, gate the checklist with named gaps, and score commitment health 0-100.
development
Use when someone wants to decide whether a meeting is worth calling, price a meeting in dollars, build a timeboxed agenda with desired outcomes, or turn messy meeting notes into owned action items — or says "should this be a meeting", "/cs:meeting-prep", or "/cs:meeting-actions". Runs a cost gate (ASYNC / NOT-READY / MEET), builds a decision-first agenda, and extracts an owner + due-date checklist that flags every orphan.
development
Convert a rambling description of a desired outcome into one polished, autonomous /goal prompt ready to paste into a fresh session. Use when the user says "/fable-goal", "turn this into a goal prompt", "write me a fable prompt", "write the prompt that builds X", or rambles about something they want made and asks for the prompt that makes it happen. The output is a single copy-paste prompt, never the build itself. Do NOT use when the user wants the thing built right now in this session — only when they want the PROMPT that will make it happen in a fresh session.
development
Use when someone wants to plan a deep work day, time-block their calendar or task list, budget or cut shallow work, protect focus hours, track deep-work sessions and streaks, run an end-of-day shutdown ritual, or says "/deep-work" or "/time-block". Classifies tasks deep vs shallow, builds an energy-first time-blocked schedule that refuses deep demand past the 4-hour ceiling, batches shallow work into at most two windows, and logs focus sessions against a weekly target.