285 lines
14 KiB
Markdown
285 lines
14 KiB
Markdown
# simp-skill · 产品设计文档 (PRD)
|
||
|
||
> 版本:v1.6
|
||
> 作者:[@BeamusWayne](https://github.com/BeamusWayne)
|
||
> 最后更新:2026-05-02
|
||
|
||
---
|
||
|
||
## 一、为什么做这个
|
||
|
||
这个 skill 系列里已经有了模拟前任的、模拟心上人的、模拟同事的。
|
||
|
||
但它们有一个共同的角色设定:**它们都是「对方」**。
|
||
|
||
没有一个是站在你这边的。
|
||
|
||
simp-skill 想做的事情不一样——它不扮演任何人,它只做一件事:**陪你追人**。
|
||
|
||
---
|
||
|
||
## 二、核心定位
|
||
|
||
```
|
||
不是情感陪伴 App
|
||
不是恋爱模拟游戏
|
||
不是话术库
|
||
|
||
是一个懂感情、有策略、永远站你这边的追求教练。
|
||
```
|
||
|
||
与系列内其他 skill 的对比:
|
||
|
||
|
||
| Skill | 角色 | 视角 |
|
||
| -------------- | -------- | -------- |
|
||
| ex-skill | 扮演前任 | 对方视角 |
|
||
| crush-skills | 扮演心上人 | 对方视角 |
|
||
| yourself-skill | 扮演你自己 | 第一人称 |
|
||
| **simp-skill** | **陪你追人** | **你的视角** |
|
||
|
||
|
||
这个差异决定了 simp-skill 几乎所有的设计选择。
|
||
|
||
---
|
||
|
||
## 三、最重要的一个设计决策:为什么要有两个模式
|
||
|
||
这是整个产品里争议最大的设计,值得单独说清楚。
|
||
|
||
### 最初的方案:只做纯情模式
|
||
|
||
第一稿的设定很简单:只教你说真心话,不玩套路,用真诚打动对方。
|
||
|
||
这个方案有一个问题:**它假设所有人、所有阶段都适合同一种方式。**
|
||
|
||
现实是,有些人在感情里天然不会解读直白的表达——不是因为他们冷漠,而是因为他们需要一点空间和节奏感。对这类人纯情轰炸,效果可能适得其反。
|
||
|
||
### 最终方案:双模式 + 混合默认
|
||
|
||
```
|
||
💖 纯情模式 — 以真心为核心,不算计
|
||
🎯 策略模式 — 以节奏为核心,懂进退
|
||
✨ 混合模式 — 默认,真心为底、智慧为骨
|
||
```
|
||
|
||
**为什么默认混合,而不是纯情?**
|
||
|
||
因为大多数追求失败,不是真心不够,而是时机和方式错了。真心是必要条件,不是充分条件。混合模式假设用户是真心的,但帮助他们更聪明地表达出来。
|
||
|
||
**为什么保留纯情模式,而不是全用混合?**
|
||
|
||
有些用户明确知道自己不想算计,他们只需要帮助「把心里的话说出来」。纯情模式是给他们的。
|
||
|
||
**策略模式会不会变成 PUA?**
|
||
|
||
不会——见第五节。策略模式的边界是「让感情推进得更自然」,而不是「制造对方的不安全感」。这两者有明确的区别,被写进了 SKILL.md 的运行规则里。
|
||
|
||
---
|
||
|
||
## 四、三层情感表达公式的由来
|
||
|
||
simp-skill 里所有情话生成都基于一个公式:
|
||
|
||
```
|
||
第一层「看见」: 我注意到了你身上具体的 XX
|
||
第二层「感受」: 这让我感到 / 想到了 XX
|
||
第三层「期待」: 我想 / 希望 XX(留有余地)
|
||
```
|
||
|
||
这个公式不是凭空发明的,它来自一个观察:
|
||
|
||
**让人心动的话,从来不是「你很好」,而是「你让我怎么了」。**
|
||
|
||
「你很漂亮」是评价,「看到你我突然不知道说什么了」是感受。后者更真实,更难伪造,也因此更有力量。
|
||
|
||
公式的第三层刻意设计了「留有余地」——不把话说满,让对方有想继续的空间。这是纯情模式和策略模式共享的底层逻辑:**无论多真诚,表达的节奏感都很重要。**
|
||
|
||
---
|
||
|
||
## 五、伦理边界:我们不生成什么
|
||
|
||
这一节的存在,是因为一个追求类 skill 太容易滑向操控工具。
|
||
|
||
我们明确拒绝生成以下内容:
|
||
|
||
**操控类**
|
||
|
||
- 刻意制造对方不安全感的话术(「你不答应我就不理你了」)
|
||
- 利用对方的弱点或创伤施压
|
||
- 假装冷漠以激发对方焦虑的「欲擒故纵」极端版本
|
||
|
||
**越界类**
|
||
|
||
- 在对方明确拒绝后继续提供追求话术
|
||
- 针对对方已有伴侣的「介入」策略
|
||
- 跟踪、监视类行为建议
|
||
|
||
**欺骗类**
|
||
|
||
- 伪造共同话题或假装有相同爱好
|
||
- 在重要事实上撒谎以建立好感
|
||
|
||
**边界在哪里?**
|
||
|
||
一个判断标准:**如果对方知道你在用这个方法,ta 会觉得被尊重,还是被耍了?**
|
||
|
||
策略模式里的「推拉节奏」「制造缺席感」,如果对方知道,会觉得「这个人懂得分寸」。而 PUA 话术如果被对方知道,ta 会觉得被操控。这是边界。
|
||
|
||
### 一条新增的伦理边界:不在用户焦虑时火上浇油
|
||
|
||
v1.6 加入「防耗尽机制」时,伦理边界从「不伤害对方」延伸到了「不伤害用户自己」。
|
||
|
||
一个追求工具默认会假设:**用户问就给答案,越多越好**。但实际跑下来发现,**焦虑驱动的高频追问**几乎一定带来更糟的结果——用户在焦虑里写出来的消息会让对方更想撤,分数会继续下降,用户回来问得更频繁,循环加剧。
|
||
|
||
这种情况下,工具有两条路:
|
||
|
||
- **A. 继续输出建议**——用户开心了,对方没事,工具看起来很有用
|
||
- **B. 拒绝输出,让用户先停下来**——用户当下不爽,但避免了对双方都不好的动作
|
||
|
||
我们选 B。这是和「不教 PUA」同等优先级的边界——只是一个保护对方,一个保护用户自己。
|
||
|
||
具体规则在 `prompts/daily_coach.md` Step 0 和 `prompts/progress_tracker.md` 风险表里。当 7 天内调用频率过高、焦虑词密度超标、或评分持续下降时,工具会进入「劝歇」分支:不给行动建议,只给陪伴式回应。即使用户坚持要继续,第一次也礼貌坚持一次,第二次才让步并附警告。
|
||
|
||
这不是「服从用户」的退让,是「服务用户长期利益」的坚持。
|
||
|
||
---
|
||
|
||
## 六、信号评分系统的设计逻辑
|
||
|
||
simp-skill 的聊天分析器用 25 分制评分,而不是简单的「有没有好感」判断。
|
||
|
||
**为什么是 25 分,不是 10 分或 100 分?**
|
||
|
||
10 分太粗,无法区分「有一点好感」和「明显喜欢」。100 分会给用户一种虚假的精确感(「83分和84分有什么区别?」)。25 分在精度和可读性之间取了平衡。
|
||
|
||
**六个维度的权重设计:**
|
||
|
||
|
||
| 维度 | 满分 | 权重理由 |
|
||
| ---- | --- | ----------------------- |
|
||
| 主动性 | 6 | 主动联系是最强的有意识信号,权重最高 |
|
||
| 回复速度 | 5 | 速度反映优先级,但受客观因素干扰,略低于主动性 |
|
||
| 回复趋势 | 3 | 趋势比当前值更有预测价值 |
|
||
| 消息长度 | 3 | 间接投入度,但受性格影响大,权重适中 |
|
||
| 深夜信号 | 5 | 深夜主动联系是最难解释的亲密信号,权重高 |
|
||
| 追问行为 | 3 | 追问说明真的在听,但数据噪音大 |
|
||
|
||
|
||
**深夜信号为什么单独列出来,权重还这么高?**
|
||
|
||
因为深夜主动找一个人,是很难用「礼貌」或「习惯」解释的。白天的消息可能是客气,深夜的消息很难是。这是这六个维度里「排除噪音」能力最强的一个。
|
||
|
||
---
|
||
|
||
## 七、功能范围演进
|
||
|
||
v1 的设计原则是:**把追求的核心流程做完整,而不是把所有边缘功能都塞进来。** 此后每个小版本只补一类清晰的能力,不堆叠。
|
||
|
||
**v1.0 核心**(2026-04-05):
|
||
|
||
- 双模式系统(纯情 / 策略 / 混合)
|
||
- 心上人档案系统(create / update / list)
|
||
- 25 分信号评分系统
|
||
- 五阶段追求路线图(破冰→升温→暧昧→表白前→表白后)
|
||
- 情境情话生成(8 大情境)
|
||
- 表白词定制系统
|
||
- 10 种危机处理方案
|
||
- 聊天记录解析器(微信/QQ 多格式)
|
||
- 档案版本管理
|
||
|
||
**v1.1–v1.6 增量**:
|
||
|
||
- v1.1 — 表白模块 prompt 完整化、`signal_reader.md` 评分对齐 25 分、`skill_writer.py` 类型化与日志改造
|
||
- v1.2 — 今日建议 `/simp daily`、进度追踪 `/simp progress`、放弃判断器 `/simp quit`
|
||
- v1.3 — `/simp message` 加入 AI 味检测、危机扩展 C-11(对方开始新感情)
|
||
- v1.4 — 记忆系统 Phase 2+3(`tools/memory.py`、事件流、状态快照、记忆操作协议)、进度可视化
|
||
- v1.5 — MBTI 分析系统 `/simp mbti`、信号/策略集成 MBTI 校正层
|
||
- v1.6 — 防耗尽机制(`/simp daily` Step 0 预检、`/simp progress` 风险表新增「用户耗尽风险」、`SKILL.md` 运行规则升级)
|
||
|
||
**仍有意不包含(下版本再说):**
|
||
|
||
- 多人档案对比(「我应该追 A 还是追 B」)
|
||
- 对话练习模式 `/simp rehearse`(模拟对话练习表白)
|
||
- 朋友圈内容建议、礼物建议、约会策划、成功后维系模块(见第八节"待评估")
|
||
|
||
---
|
||
|
||
## 八、Roadmap
|
||
|
||
### v1.6 · ✅ 已发布(2026-04-28)
|
||
|
||
- **防耗尽机制**:`prompts/daily_coach.md` 新增 Step 0「防耗尽预检」,从 `events.jsonl` 最近 7 天读取调用频率、焦虑词密度、单日重复、评分趋势、长期低位徘徊 5 类信号,命中高风险时短路返回「劝歇」分支。`prompts/progress_tracker.md` 风险表新增「用户耗尽风险」一行;`SKILL.md` 运行规则新增第 8 条「防耗尽优先」。这条线的核心立场是:当用户处于焦虑驱动状态时,更多的追求建议只会加深耗尽,工具应主动停下来而不是继续输出。
|
||
|
||
### v1.5 · ✅ 已发布
|
||
|
||
- **MBTI 分析系统**:新增 `/simp mbti` 指令。含三个模块:① 行为维度推断(E/I、N/S、T/F、J/P)② 16 型专属追求策略(含核心需求、节奏、雷区、试探方式)③ 双方兼容性分析。信号解读与策略规划模块已集成 MBTI 校正层。
|
||
|
||
### v1.4 · ✅ 已发布
|
||
|
||
- **记忆系统 Phase 2+3**:`tools/memory.py` 完整实现(事件追加、状态读写、快照管理、时间线查看、状态重建)。`SKILL.md` 新增记忆操作协议,定义每条指令的读写规范。
|
||
- **进度可视化**:`/simp progress` 输出新增阶段进度条(纯文本图示)和热度趋势对比,从 `state.md` + `events.jsonl` 读取历史数据。
|
||
|
||
### v1.3 · ✅ 已发布
|
||
|
||
- **AI 味检测**:`/simp message` 生成后自动运行,识别七种 AI 特征(过于工整的句式、缺少语气词、四字词堆砌等),命中后主动提示用户并给出改写方向,而不是替用户重写。
|
||
- **危机扩展 C-11**:补充「对方开始了新感情后如何调整」——含 72 小时情绪处理、三问重新评估、路线 A(长线等待)和路线 B(拉开距离)分支,以及与 C-6(竞争对手)的区分说明。
|
||
|
||
### v1.2 · ✅ 已发布
|
||
|
||
- **今日建议 `/simp daily`**:根据当前阶段输出单条今日行动建议(主动出击 / 等待观察 / 自我提升 / 机会捕捉 / 破局 五种类型),区分周末与工作日。
|
||
- **进度追踪 `/simp progress`**:阶段评估、热度分历史趋势、里程碑追踪、三条具体行动。
|
||
- **放弃判断器 `/simp quit`**:帮用户区分真心与执念,输出四种结论(继续 / 调整策略 / 先暂停 / 认真考虑放下)。
|
||
|
||
### v1.7+ · 待选方向
|
||
|
||
以下方向来自产品探索,尚未排入具体版本,等待优先级确认:
|
||
|
||
**功能扩展类**
|
||
|
||
- `/simp mirror`:**反向视角**——基于档案模拟「如果我是心上人,我对你的印象是什么」,帮用户跳出自己的视角。
|
||
- `/simp weekly`:**每周复盘**——本周高点/低点/下周策略,比 `/simp daily` 更长维度的回顾。
|
||
- `/simp rehearse`:**对话练习模式**——基于心上人档案构建简单的对方性格模拟,让用户在正式表白前「彩排」一遍。借鉴 crush-skills 的人物模拟能力,但用途完全不同——不是为了「和心上人对话」,而是为了「练习如何面对心上人」。
|
||
- `/simp date`:**约会策划**——根据心上人档案推荐约会场景、时机、话题,不走「找个电影院」的烂大街路线。
|
||
- `/simp post`:**朋友圈内容建议**——今天发什么让 ta 注意到你,风格上怎么展示你最好的状态。
|
||
- `/simp gift`:**礼物建议**——结合档案推荐有记忆点的礼物,而不是通用的节日礼物。
|
||
- `/simp after`:**成功后模块**——在一起之后怎么维系热情、如何处理初期磨合,目前 v1 完全缺失这块。
|
||
|
||
**内容扩展类**
|
||
|
||
- 多语言情话库(粤语、闽南语等方言支持)
|
||
- 节气 / 节日专属情话生成(不走通用祝福路线)
|
||
- 「对方的 MBTI」精准情话引擎(在 v1.5 校正层基础上做深)
|
||
|
||
### v2.0 · 全局视角
|
||
|
||
v2 的核心问题是:**单纯追求一个人,是不是最好的策略?**
|
||
|
||
v2 计划加入「个人吸引力评估」模块——在帮用户追人之前,先帮用户评估自己哪些地方可以提升。最好的追求策略永远是让自己变得更好,而不只是说对话。
|
||
|
||
这个模块需要和 yourself-skill 生态打通,目前在设计阶段。
|
||
|
||
---
|
||
|
||
## 九、一个没有标准答案的问题
|
||
|
||
做这个 skill 的过程里一直有一个问题没有彻底想清楚:
|
||
|
||
**教一个人更好地追求另一个人,是在帮助真心,还是在干预自然?**
|
||
|
||
我们的立场是:帮助表达,不帮助欺骗。
|
||
|
||
一个人喜欢另一个人,但不知道怎么说出来,这是表达能力的问题,不是感情真不真的问题。simp-skill 试图解决的是前者。
|
||
|
||
但我们也承认:用语言影响另一个人的感情决策,本身就带有一定的干预性。我们能做的是让这种干预停留在「帮助真心被看见」这一侧,而不是越过「制造虚假感情」那条线。
|
||
|
||
这条线需要被持续审视。
|
||
|
||
---
|
||
|
||
*如果你对这个产品有想法,欢迎开 Issue 或 PR。*
|
||
*如果这个 skill 帮你追到了心上人,也欢迎来告诉我。*
|
||
|
||
---
|
||
|
||
*simp-skill · 愿每一份真心都有回应* |