Help developers clarify product requirements through conversational interaction, asking targeted questions based on selected feature modules.
Tool usage: Use AskUserQuestion tool when collecting user input, supporting single-choice and multiple-choice questions.
Prerequisite check
Before starting, check the project status:
- Check whether
.secondme/state.jsonexists- Does not exist → Prompt:
请先运行 /secondme-init 初始化项目配置 - Exists → Continue
- Does not exist → Prompt:
- Check the stage field
stage == "init"→ Continue the PRD conversation normallystage == "prd"or"ready"→ Ask:已有 PRD 定义,是否要重新定义需求?- User confirms → Continue
- User cancels → Exit
Conversation flow
Round 1: Show API capabilities
Read the state.json field in modules , and show relevant API capabilities based on the selected modules:
auth module (always required):
- User login and authorization
- Access Token and Refresh Token management
- User identity verification
profile module(if selected):
- Get basic user information (nickname, avatar)
- Get user interest tags (Shades)
- Get user soft memory/knowledge base
chat module(if selected):
- Streaming conversation with SecondMe AI
- Get historical session list
- Get session message records
act module(if selected):
- Structured action judgment: let the AI output a valid JSON object, used for decision-making scenarios such as intent classification, sentiment analysis, and conditional judgment
- Define the output JSON structure and judgment rules through actionControl
note module(if selected):
- Add notes/memories to the user's SecondMe
Then ask:
Based on the above capabilities, what type of application do you want to build?
Round 2: Collect core requirements
Ask:
- Application goal: What problem does your application mainly solve?
- Target users: Who is this application for?
Collect the user's answers and form a requirements summary.
Round 3: Feature refinement
Ask targeted questions based on the selected modules:
If the chat module is selected:
- Do you need to save conversation history to a local database?
- What preferences do you have for the chat interface? (single-turn chat/multi-turn session list)
- Do you need to display the AI's thinking process?
If the act module is selected:
- Which actions need to be judged? (e.g., user intent classification, sentiment tendency, whether a certain condition is met)
- What is the output JSON structure? (e.g.,
{"is_liked": boolean}、{"intent": "like"|"dislike"|"neutral"}) - What business logic will the judgment result drive? (e.g., automatic like/favorite, route navigation, conditional trigger)
If the profile module is selected:
- Which user information needs to be displayed? (avatar, nickname, interest tags, soft memory)
- Where should user information be displayed? (Profile page/sidebar/top navigation)
If the note module is selected:
- In what scenarios would users add notes?
- What feedback is needed after adding a note?
Round 4: Design preferences
Questions:
-
Interface style: What kind of visual style would you like?
- Minimal and modern
- Warm and cute
- Professional and business
- Other (please describe)
-
Color preference: Do you have any particular favorite colors? (Optional)
Round 5: Requirements confirmation
Summarize the collected information and present a requirements summary:
📋 产品需求摘要
应用概要:[用户描述的应用目标]
核心功能:
- [功能1]
- [功能2]
- [功能3]
目标用户:[用户描述]
设计偏好:[界面风格]
确认以上需求是否正确?
After the user confirms, proceed to the next step.
Update state.json
After confirming the requirements, update .secondme/state.json:
{
"version": "1.0",
"stage": "prd",
"modules": ["auth", "chat"],
"config": { ... },
"prd": {
"summary": "应用概要描述",
"features": [
"功能1描述",
"功能2描述",
"功能3描述"
],
"target_users": "目标用户描述",
"design_preference": "简约现代"
}
}
Output results
✅ 产品需求已定义!
概要:[summary]
功能列表:
- [feature 1]
- [feature 2]
设计偏好:[design_preference]
已保存到 .secondme/state.json
下一步:运行 /secondme-nextjs 生成项目
Interruption handling
If the user proactively requests to stop or cancel the PRD definition:
- Ask whether to save the partial information already collected
- If saving: write to
state.jsonof theprdfield, keepstageas"init" - The next time
/secondme-prdis run, it can continue or start over
Notes
- The dialogue should be natural and smooth; do not ask and answer mechanically
- Adjust follow-up questions based on the user's answers
- If the user's answer is vague, ask follow-up questions to clarify
- At most 5 rounds of dialogue to avoid being too long