From agentops
Interactively creates or refines PRODUCT.md via prompts for mission, user personas, value propositions, and competitive positioning, using project files for suggestions.
npx claudepluginhub boshu2/agentops --plugin agentopsThis skill uses the workspace's default tool permissions.
> **Purpose:** Guide the user through creating a `PRODUCT.md` that unlocks product-aware reviews in `/pre-mortem` and `/vibe`, including the default quick-mode inline paths.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Purpose: Guide the user through creating a
PRODUCT.mdthat unlocks product-aware reviews in/pre-mortemand/vibe, including the default quick-mode inline paths.
YOU MUST EXECUTE THIS WORKFLOW. Do not just describe it.
CLI dependencies: None required.
Given /product [target-dir]:
target-dir defaults to the current working directory.Check if PRODUCT.md already exists:
ls PRODUCT.md 2>/dev/null
If it exists:
Use AskUserQuestion:
If it does not exist: continue to Step 2.
Read available project files to pre-populate suggestions:
ls the project root for structural hintsUse what you find to draft initial suggestions for each section. If no files exist, proceed with blank suggestions.
Ask the user about each section using AskUserQuestion. For each question, offer pre-populated suggestions from Step 2 where available.
Ask: "What is your product's mission? (One sentence: what does it do and for whom?)"
Options based on README analysis:
Ask: "Who are your primary users? Describe 2-3 personas."
For each persona, gather:
Use AskUserQuestion for the first persona's role, then follow up conversationally for details and additional personas. Stop when the user says they're done or after 3 personas.
Ask: "What makes your product worth using? List 2-4 key value propositions."
Options:
Ask: "What alternatives exist, and how do you differentiate?"
Gather for each competitor:
Then ask: "What is the market trend you're betting on that competitors are ignoring?"
This produces the Strategic Bet section — the contrarian thesis that justifies your product's existence. Examples:
If the user says "none" or "skip" for competitors, write "No direct competitors identified" but still ask about the strategic bet.
Ask: "What evidence do you have that this product works?"
Gather what's available:
Auto-gather if possible:
gh api repos/{owner}/{repo} --jq '{stars: .stargazers_count, forks: .forks_count, open_issues: .open_issues_count}'.agents/ exists, count learnings, council verdicts, and retros as usage evidenceGOALS.md exists, pull fitness score as a quality metricIf the project is new with no evidence yet, write "Pre-traction — evidence to be gathered" and list what metrics to track.
Ask: "What's broken, missing, or embarrassing about the product right now? Be honest."
This section is the most valuable one for internal product docs. It prevents the doc from being marketing copy. Gather:
If the user says "nothing", gently challenge: "Every product has gaps. What would a frustrated user complain about?" Push for at least 2 honest gaps.
Do not ask the user. Scan the project for extracted principles:
.agents/planning-rules/ — compiled planning principles.agents/patterns/ — battle-tested patterns from usage.agents/learnings/ — accumulated learningsIf any exist, count them and note their source (e.g., "7 planning rules extracted from 544K agent messages"). These will be included in the output as "Validated Principles" — principles proven through usage, not just design assumptions.
If none exist, skip this section in the output.
Write PRODUCT.md to the target directory with this structure:
---
last_reviewed: YYYY-MM-DD
---
# PRODUCT.md
## Mission
{mission from 3a}
## Vision
{one-sentence aspirational framing — what the world looks like if the product succeeds}
## Target Personas
### Persona 1: {role}
- **Goal:** {goal}
- **Pain point:** {pain point}
- **Gap exposure:** {which product gaps this persona feels most}
{repeat for each persona}
## What the Product Actually Is
{Describe the product's concrete layers/components. Not marketing copy — what it literally does.
Organize by architectural layer, not by feature list. For each layer, explain what gap it closes.}
## Core Value Propositions
{bullet list from 3c — each value prop should map to a specific gap or outcome it closes}
## Design Principles
{If validated principles were discovered in 3g, include them here:}
**Validated Principles (from {source count} {source description}):**
1. **{Principle name}** — {one-line description with link to source}
{If no validated principles exist, include design principles from the interview.}
**Operational principles:**
{List the principles that govern how the product works, not just what it does.}
## Competitive Positioning
| Alternative | Where They Win | Where We Win |
|-------------|---------------|--------------|
{rows from 3d — honest about both sides}
## Strategic Bet
{From 3d — the contrarian thesis. What market trend is this product betting on?}
## Evidence
{From 3e — real numbers, not claims}
**Traction:**
- {metric}: {value} ({time period})
**Measured Impact:**
- {outcome}: {evidence}
{If pre-traction: "Pre-traction — tracking: {list of metrics to watch}"}
## Known Product Gaps
{From 3f — honest about what's broken}
| Gap | Impact | Status |
|-----|--------|--------|
| {gap description} | {who it affects and how} | {open / in-progress / planned} |
## Usage
This file enables product-aware reviews:
- **`/pre-mortem`** — Automatically loads product context when this file exists. Default `--quick` mode includes the context inline; deeper modes add a dedicated `product` perspective alongside plan-review judges.
- **`/vibe`** — Automatically loads developer-experience context when this file exists. Default `--quick` mode includes the context inline; deeper modes add a dedicated `developer-experience` perspective alongside code-review judges.
- **`/council --preset=product`** — Run product review on demand.
- **`/council --preset=developer-experience`** — Run DX review on demand.
Explicit `--preset` overrides from the user skip auto-include (user intent takes precedence).
Set last_reviewed to today's date (YYYY-MM-DD format).
Tell the user:
PRODUCT.md at {path}/pre-mortem will now load product context by default, including in --quick mode; deeper modes add a dedicated product perspective/vibe will now load developer-experience context by default, including in --quick mode; deeper modes add a dedicated DX perspective/council --preset=product and /council --preset=developer-experience are available on demand/pre-mortem on their next plan to see product perspectives in actionUser says: /product
What happens:
Result: PRODUCT.md created with evidence-backed content, unlocking product-aware council perspectives in future validations.
User says: /product
What happens:
last_reviewed dateResult: PRODUCT.md refreshed with additional persona, ready for next validation cycle.
| Problem | Cause | Solution |
|---|---|---|
| No context to pre-populate suggestions | Missing README or project metadata files | Continue with blank suggestions. Ask user to describe project in own words. Extract mission from conversation. |
| User unclear on personas vs users | Confusion about persona definition | Explain: "Personas are specific user archetypes with goals and pain points. Think of one real person who would use this." Provide example. |
| Competitive landscape feels forced | Genuinely novel product or niche tool | Accept "No direct competitors" as valid. Focus on alternative approaches (manual processes, scripts) rather than products. Still ask for strategic bet. |
| PRODUCT.md feels generic | Insufficient user input or rushed interview | Ask follow-up questions. Request specific examples. Challenge vague statements like "makes things easier" — easier how? Measured how? |
| User resists Known Gaps section | Discomfort admitting weaknesses | Explain: "This is an internal doc, not marketing. Honest gaps prevent the team from building on false assumptions. Every product has them." Push for at least 2. |
| No usage data available | Pre-launch or private project | Write "Pre-traction" with a list of metrics to track once launched. The section's presence reminds future updates to fill it in. |
gh api fails or no GitHub remote | Private repo, no auth, or non-GitHub host | Skip auto-gather gracefully. Ask user to provide metrics manually. |
| No .agents/ directory for principles | Project doesn't use AgentOps | Skip the validated principles section entirely. Include user-stated design principles instead. |