# Secondme Prd

> 通过对话定义产品需求，根据已选模块针对性提问，更新 state.json

- Skill: `tangchunwu/secondme-prd` (Agent Skill)
- Install (CLI): `npx skillmds@latest add tangchunwu/secondme-prd`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tangchunwu/secondme-prd/raw
- Safety review: PASS (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Product & Planning
- Author: tangchunwu (https://skillmd.com/u/tangchunwu)
- Updated: 2026-08-19
- Page: https://skillmd.com/skills/tangchunwu/secondme-prd

---


# SecondMe 产品需求定义

通过对话式交互帮助开发者明确产品需求，根据已选功能模块针对性提问。

**工具使用：** 收集用户输入时使用 `AskUserQuestion` 工具，支持单选和多选问题。

---

## 前置条件检查

在开始之前，检查项目状态：

1. **检查 `.secondme/state.json` 是否存在**
   - 不存在 → 提示：`请先运行 /secondme-init 初始化项目配置`
   - 存在 → 继续

2. **检查 stage 字段**
   - `stage == "init"` → 正常继续 PRD 对话
   - `stage == "prd"` 或 `"ready"` → 询问：`已有 PRD 定义，是否要重新定义需求？`
     - 用户确认 → 继续
     - 用户取消 → 退出

---

## 对话流程

### 第一轮：展示 API 能力

读取 `state.json` 中的 `modules` 字段，根据已选模块展示相关 API 能力：

**auth 模块（必有）**：
- 用户登录和授权
- Access Token 和 Refresh Token 管理
- 用户身份验证

**profile 模块**（如已选）：
- 获取用户基础信息（昵称、头像）
- 获取用户兴趣标签（Shades）
- 获取用户软记忆/知识库

**chat 模块**（如已选）：
- 与 SecondMe AI 进行流式对话
- 获取历史会话列表
- 获取会话消息记录

**act 模块**（如已选）：
- 结构化动作判断：让 AI 输出合法 JSON 对象，用于意图分类、情感分析、条件判断等决策场景
- 通过 actionControl 定义输出的 JSON 结构和判断规则

**note 模块**（如已选）：
- 添加笔记/记忆到用户的 SecondMe

然后询问：
> 基于以上能力，你想要构建什么类型的应用？

---

### 第二轮：收集核心需求

提问：

1. **应用目标**：你的应用主要解决什么问题？
2. **目标用户**：这个应用是给谁用的？

收集用户回答，形成需求概要。

---

### 第三轮：功能细化

根据已选模块，针对性提问：

**如果选了 chat 模块**：
- 是否需要保存会话历史到本地数据库？
- 对话界面有什么偏好？（单轮对话/多轮会话列表）
- 需要显示 AI 的思考过程吗？

**如果选了 act 模块**：
- 需要判断哪些动作？（如：用户意图分类、情感倾向、是否满足某个条件）
- 输出的 JSON 结构是什么？（如：`{"is_liked": boolean}`、`{"intent": "like"|"dislike"|"neutral"}`）
- 判断结果会驱动什么业务逻辑？（如：自动点赞/收藏、路由跳转、条件触发）

**如果选了 profile 模块**：
- 需要展示哪些用户信息？（头像、昵称、兴趣标签、软记忆）
- 用户信息展示在什么位置？（个人主页/侧边栏/顶部导航）

**如果选了 note 模块**：
- 什么场景下用户会添加笔记？
- 添加笔记后需要什么反馈？

---

### 第四轮：设计偏好

提问：

1. **界面风格**：你希望什么样的视觉风格？
   - 简约现代
   - 温馨可爱
   - 专业商务
   - 其他（请描述）

2. **配色偏好**：有特别喜欢的颜色吗？（可选）

---

### 第五轮：需求确认

汇总收集的信息，展示需求摘要：

```
📋 产品需求摘要

应用概要：[用户描述的应用目标]

核心功能：
- [功能1]
- [功能2]
- [功能3]

目标用户：[用户描述]

设计偏好：[界面风格]

确认以上需求是否正确？
```

用户确认后，进入下一步。

---

## 更新 state.json

确认需求后，更新 `.secondme/state.json`：

```json
{
  "version": "1.0",
  "stage": "prd",
  "modules": ["auth", "chat"],
  "config": { ... },
  "prd": {
    "summary": "应用概要描述",
    "features": [
      "功能1描述",
      "功能2描述",
      "功能3描述"
    ],
    "target_users": "目标用户描述",
    "design_preference": "简约现代"
  }
}
```

---

## 输出结果

```
✅ 产品需求已定义！

概要：[summary]

功能列表：
- [feature 1]
- [feature 2]

设计偏好：[design_preference]

已保存到 .secondme/state.json

下一步：运行 /secondme-nextjs 生成项目
```

---

## 中断处理

如果用户主动要求中止或取消 PRD 定义：
- 询问是否保存已收集的部分信息
- 如果保存：写入 `state.json` 的 `prd` 字段，保持 `stage` 为 `"init"`
- 下次运行 `/secondme-prd` 时可以继续或重新开始

---

## 注意事项

- 对话应该自然流畅，不要机械地问答
- 根据用户回答调整后续问题
- 如果用户回答模糊，可以追问澄清
- 最多 5 轮对话，避免过长

