product-skills
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).
- License 许可
- MIT
- 最近更新
- 2026-10-10
- Stars
- ★ 0
- Forks
- 0
01 前言 Front Matter
- name
- product-skills
- tags
- [ "product", "product-management", "orchestrator", "discovery", "ux", "analytics", "agent-harness" ]
- author
- Alireza Rezvani
- context
- fork
- license
- MIT
- version
- 2.11.1
- description
- 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).
- compatible_tools
- [ "claude-code", "codex-cli", "cursor", "antigravity", "opencode", "gemini-cli" ]
02 资源文件 8
- 资产文件assets/sample_discovery_log.json965 B
- 资产文件assets/sample_ost.json984 B
- 参考文档references/ai_product_evals.md3.6 KB
- 参考文档references/continuous_discovery_canon.md3.9 KB
- 参考文档references/product_operating_model.md3.9 KB
- 脚本scripts/discovery_cadence_tracker.py7.8 KB
- 脚本scripts/ost_linter.py7.1 KB
- 脚本scripts/product_goal_router.py8.5 KB
03 SKILL.md 正文
Product Team — Domain Orchestrator & Discovery Loop
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.
When to invoke
| 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) |
Routing logic (deterministic)
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.
The discovery loop (the domain's recurring agentic loop)
Modern discovery is a weekly habit, not a project phase (Torres). Run it as a bounded loop with two machine gates:
- Observe — maintain
discovery_log.json(interviews, assumption tests; shape inassets/sample_discovery_log.json) and score the cadence:
Refuses on < 2 interviews (exit 5) — there is no cadence to measure yet. Output: health 0–100, verdict HEALTHY/AT-RISK/DORMANT, named gaps, andpython3 scripts/discovery_cadence_tracker.py --input discovery_log.jsonnext_loop_action. - Choose — the tracker's
next_loop_actionIS the choice: book the touchpoint, re-anchor the guide on the outcome, or test the top untested assumption (route toproduct-discovery's assumption_mapper for prioritization). - Act — run the interview / assumption test with the routed sub-skill's tools.
- Verify — keep the tree structurally sound before it may drive a roadmap:
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).python3 scripts/ost_linter.py --input ost.json # exit 2 = NEEDS-REWORK, fix before citing the tree - Record / Repeat-or-stop — update the log, keep the weekly streak alive. Stop
states: HEALTHY + validated assumption → graduate to
experiment-designer(build the A/B gate) orproduct-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.
Hard rules
- Evidence before conviction: no roadmap item cites the OST unless
ost_linter.pyexits 0; no insight is asserted from a single participant (anecdote, not insight). - Outcome-first: every loop hangs from one measurable outcome — the linter's O1 rule is the intake gate.
- Experiments are gated by math: sample size from
../experiment-designer/scripts/sample_size_calculator.py, never gut feel; report the MDE with the verdict. - Prioritization shows its framework: RICE for steady-state, WSJF/cost-of-delay when time sensitivity dominates, opportunity scoring for underserved needs — name which and why (see references/product_operating_model.md).
- AI features ship with evals: a golden set + rubric is the PRD's quality contract for probabilistic features (references/ai_product_evals.md).
- Never modify a gate you are judged by; exhausted budgets escalate to a named human, never report as success.
Forcing-question library (grill-with-docs pattern)
One per turn, recommended answer, canon citation. Never run a sub-skill or start a loop until the lane-defining decision is locked:
- DISCOVERY lane: "What is the single outcome this discovery serves, stated with a number? Recommended: write it as the OST root first — opportunities without an outcome are a feature factory. Canon: Torres, Continuous Discovery Habits; opportunity solution trees (producttalk.org)."
- PRIORITIZE lane: "Does time sensitivity change this ranking — would delaying any item a quarter erode its value? Recommended: if yes, run WSJF/cost-of-delay alongside RICE and compare ranks; flag items whose rank flips on a one-step estimate change. Canon: Reinertsen, Principles of Product Development Flow; SAFe WSJF false-precision critique."
- EXPERIMENT lane: "What baseline rate and MDE justify this test's runtime? Recommended: compute n first; if you can't reach it in 4 weeks, test a bigger lever. Canon: statistical power analysis (experiment-designer)."
- ANALYTICS lane: "Is your North Star a leading indicator of value exchange, or revenue/vanity? Recommended: leading value metric with an input tree. Canon: Amplitude, The North Star Playbook."
- STRATEGY lane: "Are these OKRs outcomes or shipping lists? Recommended: outcomes — output OKRs are the #1 operating-model failure. Canon: Cagan, Transformed (SVPG, 2024)."
- BUILD lanes (spec-to-repo / saas-scaffolder): "Which validated assumption says this should be built at all? Recommended: link the OST test that survived; building is the most expensive way to test an idea. Canon: Torres; Bland, Testing Business Ideas."
Assumptions
- The user owns (or advises the owner of) the product decision.
- Discovery data lives in the workspace as JSON logs — the loop is file-backed and
resumable; every tool ships
--sampleso the shape is visible first. - The four standalone plugins are installed alongside the bundle (the router still routes to them by path if not).
Non-goals
- Not the delivery loop — sprint/flow/Jira work routes to
project-management. - Not the generic loop engine — that is
engineering/agent-harness; this orchestrator is the product-domain adapter (router + discovery gates). - Not campaign marketing —
marketing/landingbuilds from-scratch marketing pages;landing-page-generatorhere scaffolds product Next.js/TSX pages.
Output artifacts
| 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 |
Anti-patterns (do not)
- ❌ Run all 16 lanes "to be thorough" — route to one, digest, chain on confirmation
- ❌ Cite an OST that fails the linter, or promote a single-participant anecdote to insight
- ❌ Ship an AI feature whose PRD has no eval (golden set + rubric)
- ❌ Let the discovery streak die silently — DORMANT escalates by name
- ❌ Treat RICE as the only prioritization lens when deadlines dominate
References
- references/continuous_discovery_canon.md — Torres, OST, assumption testing, JTBD switch interviews, story mapping
- references/product_operating_model.md — Cagan Transformed, North Star framework, PLG benchmarks, WSJF/ODI vs RICE
- references/ai_product_evals.md — evals-as-PRD, model cards, evaluator-optimizer loops
- Loop engine:
engineering/agent-harness· Loop vocabulary:loop-library
04 同仓库更多 Skills
syllabus
Generates a curated supplementary reading list from any course syllabus using Consensus academic search. Grill-me intake (syllabus input format + course audience + year range) plus a grouping forcing-options checkpoint before any search runs — so the reading list matches the course's level and recency need. Parses the syllabus to extract topics and learning outcomes, searches Consensus for recent peer-reviewed papers per topic, and produces a professionally formatted .docx with clickable Consensus links, plain-language summaries calibrated to audience level, and Bloom-higher-order discussion questions tied to course learning goals. Use when the user uploads a syllabus, course outline, or curriculum document and wants supplementary readings (e.g., 'create a reading list from this syllabus', 'find recent papers for my course') — even casual mentions with a syllabus attached should trigger this skill.
pulse
Multi-source recency research skill that takes the pulse of any topic across Reddit, Hacker News, the open web, and optionally X/Twitter within a configurable recent window (default 30 days). Forcing intake clarifies topic specificity, angle (trend/sentiment/problems/opportunities/comparison), time window, and platform scope before searching. Returns a synthesized briefing with citations, engagement metrics, and cross-platform pattern analysis. Use when the user requests multi-source recency intelligence on a topic (e.g., 'pulse on [topic]', 'what's happening with [topic]', 'what are people saying about [topic]', 'current conversation about [topic]', 'take the pulse of [topic]', 'trending: [topic]', 'find me info on [topic]'), and for competitor research, trend discovery, tool comparisons, and audience sentiment analysis.
patent
Patent prior-art and landscape intelligence skill — not generic patent help. Commits to one of five sub-use-cases via forcing intake (novelty search / freedom-to-operate / competitive landscape / acquisition diligence / litigation prior-art) before any search runs. Searches Google Patents, Espacenet, USPTO, and optionally Lens.org for citation-graph signals. Output is an editable Word document (.docx) with verdict, ranked closest art (claim-text extracted), CPC-class-aware landscape, family-resolved hits, geographic coverage, FTO flags where applicable, strategy recommendations, and full audit log. Use when the user asks for patent searching or analysis (e.g., 'prior art search for [invention]', 'freedom to operate analysis for [product]'). Produces search signal, not legal advice — always recommends consulting a patent attorney before filing or licensing decisions. Trademark, copyright, and trade-secret questions are out of scope.
notebooklm
Browser automation skill for controlling Google's NotebookLM. Use when the user wants anything done in NotebookLM (e.g., 'open NotebookLM', 'check my [name] notebook', 'ask my notebook about X', 'add [source] to NotebookLM', 'generate a Video Overview from my notebook', 'use NotebookLM Studio'). Handles reading and querying notebooks, adding sources (URLs, text, files, YouTube links, synthesized content), generating Studio outputs (Audio/Video Overviews, Mind Maps, Reports incl. Briefing Doc/Study Guide/FAQ, Flashcards, Quiz, slide decks, infographics — discover the exact set from the live Studio panel; the UI evolves fast), and creating new notebooks. Requires browser automation environment — fails gracefully when unavailable.
litreview
Academic literature orientation skill that searches papers via free keyless APIs (PubMed E-utilities + OpenAlex) by default — with the Consensus MCP as an optional enhancement lane when connected — builds a strategic search plan using PICO (default) or SPIDER / Decomposition / hybrid as fallbacks, and synthesizes findings into a formatted Word (.docx) research guide. Grill-me intake (research question specificity + framework hint + tentative depth) before the recon search; a second forcing checkpoint after Phase 2 confirms framework + sub-areas + depth before searches consume budget. Configurable depth (5/10/20 queries) controls coverage vs. speed. Output is a 'launching pad' — an orientation guide that lets a researcher dive in confidently, not a finished review. Use when the user starts literature-oriented research (e.g., 'litreview on [topic]', 'literature review on [topic]', 'I'm starting a literature review on X', 'I'm writing a paper on X', 'help me research X', 'I'm doing research on X', 'can you help me research X'). Do NOT use for single one-off paper searches wanting a quick list — that's a plain PubMed/OpenAlex (or Consensus) query.
grants
NIH grant research skill for clinical researchers. Grill-me intake (research idea + career stage + preliminary data + environment + submission posture + known institute targets) locks down the funding strategy before any search runs. Runs a 5-facet Consensus positioning analysis (with draft Significance/Innovation language), maps the research to the right NIH institutes and study sections via RePORTER, finds NOSIs and funded overlap, and produces an editable Word document (.docx) with budget/scope-aware mechanism recommendations, submission timelines, and a mandatory program officer recommendation. Use when the user asks about research funding or makes any grant-related request (e.g., 'grants for [topic]', 'find grants for my research idea', 'what grants match my research', 'help me find NIH funding', 'grant opportunities for my research'). NIH-only scope — non-NIH funders (PCORI, DOD CDMRP, VA, foundations) are out of scope and flagged at intake.