product
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinese/product — Interactive PRODUCT.md Generation
/product — 交互式PRODUCT.md生成
Purpose: Guide the user through creating athat unlocks product-aware council reviews inPRODUCT.mdand/pre-mortem./vibe
YOU MUST EXECUTE THIS WORKFLOW. Do not just describe it.
CLI dependencies: None required.
**用途:**引导用户创建一份文件,该文件可在PRODUCT.md和/pre-mortem中解锁产品相关的评审委员会审核功能。/vibe
您必须执行此工作流,不得仅进行描述。
**CLI依赖:**无需额外依赖。
Execution Steps
执行步骤
Given :
/product [target-dir]- defaults to the current working directory.
target-dir
当触发时:
/product [target-dir]- 默认值为当前工作目录。
target-dir
Step 1: Pre-flight
步骤1:预检查
Check if PRODUCT.md already exists:
bash
ls PRODUCT.md 2>/dev/nullIf it exists:
Use AskUserQuestion:
- Question: "PRODUCT.md already exists. What would you like to do?"
- Options:
- "Overwrite — start fresh" → continue to Step 2
- "Update — keep existing content as defaults" → read existing file, use its values as pre-populated suggestions in Step 3
- "Cancel" → stop, report no changes
If it does not exist: continue to Step 2.
检查PRODUCT.md是否已存在:
bash
ls PRODUCT.md 2>/dev/null若已存在:
使用AskUserQuestion工具:
- 问题: "PRODUCT.md文件已存在,您希望如何操作?"
- 选项:
- "覆盖——重新开始" → 继续执行步骤2
- "更新——保留现有内容作为默认值" → 读取现有文件,将其内容作为步骤3中的预填充建议
- "取消" → 终止操作,报告无变更
**若不存在:**继续执行步骤2。
Step 2: Gather Context
步骤2:收集上下文信息
Read available project files to pre-populate suggestions:
- README.md — extract project description, purpose, target audience
- package.json / pyproject.toml / go.mod / Cargo.toml — extract project name
- Directory listing — the project root for structural hints
ls
Use what you find to draft initial suggestions for each section. If no files exist, proceed with blank suggestions.
读取可用的项目文件以预填充建议:
- README.md — 提取项目描述、用途、目标受众
- package.json / pyproject.toml / go.mod / Cargo.toml — 提取项目名称
- 目录列表 — 执行命令查看项目根目录,获取结构线索
ls
利用收集到的信息为每个部分草拟初始建议。若不存在相关文件,则使用空白建议继续。
Step 3: Interview
步骤3:交互式访谈
Ask the user about each section using AskUserQuestion. For each question, offer pre-populated suggestions from Step 2 where available.
使用AskUserQuestion工具询问用户关于每个部分的信息。对于每个问题,若步骤2中有可用信息,则提供预填充建议。
3a: Mission
3a:产品使命
Ask: "What is your product's mission? (One sentence: what does it do and for whom?)"
Options based on README analysis:
- Suggested mission derived from README (if available)
- A shorter/punchier variant
- "Let me type my own"
询问:"您的产品使命是什么?(一句话概括:产品功能及服务对象)"
基于README分析的选项:
- 从README中提取的建议使命(若有)
- 更简洁有力的变体
- "我自行输入"
3b: Target Personas
3b:目标用户角色
Ask: "Who are your primary users? Describe 2-3 personas."
For each persona, gather:
- Role (e.g., "Backend Developer", "DevOps Engineer")
- Goal — what they're trying to accomplish
- Pain point — what makes this hard today
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.
询问:"您的核心用户是谁?请描述2-3个用户角色。"
针对每个用户角色,收集以下信息:
- 角色(例如:"后端开发工程师"、"DevOps工程师")
- 目标 — 用户希望通过产品达成什么
- 痛点 — 当前用户面临的困难
首先使用AskUserQuestion询问第一个用户角色的角色信息,随后以对话形式收集详细信息及其他用户角色。当用户表示完成或已收集3个用户角色时停止。
3c: Core Value Propositions
3c:核心价值主张
Ask: "What makes your product worth using? List 2-4 key value propositions."
Options:
- Suggestions derived from README/project context
- "Let me type my own"
询问:"您的产品的核心价值是什么?请列出2-4个关键价值主张。"
选项:
- 从README或项目上下文提取的建议
- "我自行输入"
3d: Competitive Landscape
3d:竞争格局
Ask: "What alternatives exist, and how do you differentiate?"
Gather:
- Alternative names
- Their strengths
- Your differentiation
If the user says "none" or "skip", write "No direct competitors identified" in the section.
询问:"当前存在哪些替代产品,您的产品有何差异化优势?"
收集以下信息:
- 替代产品名称
- 替代产品的优势
- 您的产品的差异化点
若用户回答“无”或“跳过”,则在该部分填写“未发现直接竞争对手”。
Step 4: Generate PRODUCT.md
步骤4:生成PRODUCT.md
Write to the target directory with this structure:
PRODUCT.mdmarkdown
---
last_reviewed: YYYY-MM-DD
---将写入目标目录,格式如下:
PRODUCT.mdmarkdown
---
last_reviewed: YYYY-MM-DD
---PRODUCT.md
PRODUCT.md
Mission
产品使命
{mission from 3a}
{来自3a的使命内容}
Target Personas
目标用户角色
Persona 1: {role}
角色1:{角色名称}
- Goal: {goal}
- Pain point: {pain point}
{repeat for each persona}
- 目标: {目标内容}
- 痛点: {痛点内容}
{为每个角色重复上述结构}
Core Value Propositions
核心价值主张
{bullet list from 3c}
{来自3c的项目符号列表}
Competitive Landscape
竞争格局
| Alternative | Strength | Our Differentiation |
|---|---|---|
| {rows from 3d} |
| 替代产品 | 优势 | 我们的差异化优势 |
|---|---|---|
| {来自3d的行内容} |
Usage
使用说明
This file enables product-aware council reviews:
- — Automatically includes
/pre-mortemperspectives (user-value, adoption-barriers, competitive-position) alongside plan-review judges when this file exists.product - — Automatically includes
/vibeperspectives (api-clarity, error-experience, discoverability) alongside code-review judges when this file exists.developer-experience - — Run product review on demand.
/council --preset=product - — Run DX review on demand.
/council --preset=developer-experience
Explicit overrides from the user skip auto-include (user intent takes precedence).
--preset
Set `last_reviewed` to today's date (YYYY-MM-DD format).本文件可解锁产品相关的评审委员会审核功能:
- — 当存在此文件时,将自动在计划评审中纳入产品视角(用户价值、采用障碍、竞争定位)
/pre-mortem - — 当存在此文件时,将自动在代码评审中纳入开发者体验视角(API清晰度、错误处理体验、可发现性)
/vibe - — 按需运行产品评审
/council --preset=product - — 按需运行开发者体验评审
/council --preset=developer-experience
用户明确指定的参数将覆盖自动纳入逻辑(用户意图优先)。
--preset
将`last_reviewed`设置为当前日期(格式为YYYY-MM-DD)。Step 5: Report
步骤5:结果报告
Tell the user:
- What was created: at
PRODUCT.md{path} - What it unlocks:
- will now auto-include product perspectives (user-value, adoption-barriers, competitive-position)
/pre-mortem - will now auto-include developer-experience perspectives (api-clarity, error-experience, discoverability)
/vibe - and
/council --preset=productare available on demand/council --preset=developer-experience
- Next steps: Suggest running on their next plan to see product perspectives in action
/pre-mortem
告知用户以下信息:
- 已创建内容: 位于的
{路径}文件PRODUCT.md - 解锁的功能:
- 现在将自动纳入产品视角(用户价值、采用障碍、竞争定位)
/pre-mortem - 现在将自动纳入开发者体验视角(API清晰度、错误处理体验、可发现性)
/vibe - 可按需使用和
/council --preset=product命令/council --preset=developer-experience
- 后续建议: 建议用户在下次计划中运行,体验产品视角的评审
/pre-mortem
Examples
示例
Creating Product Doc for New Project
为新项目创建产品文档
User says:
/productWhat happens:
- Agent checks for existing PRODUCT.md, finds none
- Agent reads README.md and package.json to extract project context
- Agent asks user about mission, suggesting "CLI tool for automated dependency updates"
- Agent interviews for 2 personas: DevOps Engineer and Backend Developer
- Agent asks about value props, user provides: "Zero-config automation, Safe updates, Time savings"
- Agent asks about competitors, user mentions Renovate and Dependabot
- Agent writes PRODUCT.md with all gathered information and today's review date
Result: PRODUCT.md created, unlocking product-aware council perspectives in future validations.
用户输入:
/product执行流程:
- 工具检查PRODUCT.md,发现不存在
- 工具读取README.md和package.json以提取项目上下文
- 工具询问用户产品使命,建议为"用于自动化依赖更新的CLI工具"
- 工具访谈收集2个用户角色:DevOps工程师和后端开发工程师
- 工具询问价值主张,用户提供:"零配置自动化、安全更新、节省时间"
- 工具询问竞争对手,用户提到Renovate和Dependabot
- 工具将所有收集到的信息写入PRODUCT.md,并设置当前日期为评审日期
结果: PRODUCT.md已创建,在后续验证中可解锁产品相关的评审委员会视角。
Updating Existing Product Doc
更新现有产品文档
User says:
/productWhat happens:
- Agent finds existing PRODUCT.md from 3 months ago
- Agent prompts: "PRODUCT.md exists. What would you like to do?"
- User selects "Update — keep existing content as defaults"
- Agent reads current file, extracts mission and personas as suggestions
- Agent asks about mission, user keeps existing one
- Agent asks about personas, user adds new "Security Engineer" persona
- Agent updates PRODUCT.md with new persona, updates date
last_reviewed
Result: PRODUCT.md refreshed with additional persona, ready for next validation cycle.
用户输入:
/product执行流程:
- 工具发现3个月前创建的PRODUCT.md
- 工具提示:"PRODUCT.md已存在,您希望如何操作?"
- 用户选择"更新——保留现有内容作为默认值"
- 工具读取当前文件,提取使命和用户角色作为建议
- 工具询问产品使命,用户选择保留现有内容
- 工具询问用户角色,用户新增"安全工程师"角色
- 工具更新PRODUCT.md,添加新角色,并更新日期
last_reviewed
结果: PRODUCT.md已更新,新增用户角色,准备好进入下一个验证周期。
Troubleshooting
故障排除
| 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. |
| 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? |
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 无上下文信息用于预填充建议 | 缺少README或项目元数据文件 | 使用空白建议继续。请用户用自己的话描述项目,从对话中提取产品使命。 |
| 用户混淆用户角色与普通用户 | 对用户角色的定义不清晰 | 解释:"用户角色是具有特定目标和痛点的典型用户原型。想象一个会使用该产品的真实用户。"并提供示例。 |
| 竞争格局部分显得牵强 | 产品确实新颖或属于小众工具 | 接受"无直接竞争对手"的回答为有效内容。聚焦于替代方法(手动流程、脚本)而非同类产品。 |
| PRODUCT.md内容过于通用 | 用户输入不足或访谈过程仓促 | 提出跟进问题,要求提供具体示例。挑战模糊表述,例如"让事情更简单"——具体如何简化?如何衡量? |