Files
wehub-resource-sync 1d6fd29cda
tests / test (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:36:27 +08:00

285 lines
14 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.1v1.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 · 愿每一份真心都有回应*