docs: 产品共识 CONTEXT 与四篇 ADR

This commit is contained in:
Jayway Liu
2026-10-03 09:51:03 +08:00
commit f57eabe12c
5 changed files with 293 additions and 0 deletions
+97
View File
@@ -0,0 +1,97 @@
# CONTEXT
## 产品定位
**陌生人交友匹配 app**:单身用户注册,系统帮他们互相发现并匹配,目标是促成新情侣。
明确排除了"已有情侣做匹配度测试"的方向(2026-10-03 确认)。
**目标人群**:高知人群。首发城市:**杭州**(创始人在杭州,可线下运营)(2026-10-03 确认)。首发渠道为高校校友会/高知社群(西电杭州校友群做种子测试群;主攻渠道备选浙大系或大厂系,工会/团委联谊活动为切入抓手)。
**冷启动策略**:以影游(互动叙事)形态做单人体验前置——用户先当游戏玩,在游戏选择中积累人格数据,用户密度足够后再开放匹配(2026-10-03 确认)。
**合规定位**:申报为**社交/交友 app**,不走游戏版号路线。影游在产品与宣传口径上称"互动剧情测评"。变现走会员订阅/增值服务,不做游戏内购。核心差异叙事:**实测 vs 自报**(2026-10-03 确认)。
## 术语
### 心动度 (Attraction)
**单向、有向**的分数:用户 A 看到用户 B 的资料后产生兴趣的程度。A→B 与 B→A 是两个独立分数,吸引不对称。
### 契合度 (Compatibility)
**双向、无向**的分数:两人长期相处的关系质量预期,不取决于谁先看到谁。用于向用户解释推荐理由。
### 匹配 (Match)
两个**此前互不相识**的用户之间建立的互相认可关系。成立条件:**双向心动度都超过阈值**。匹配是"发现陌生人"的动作,不是对已有关系的量化。
### 勋章 (Badge)
用户完成深度访谈后获得的人格标签(如 MBTI 风格)。是访谈的**营销包装**(晒图、破冰话题),**不是匹配的数据载体**。
## 剧本框架(2026-10-03 确认)
题材为**考古探险 + 穿越开局**(合规口径:主角是考古/文物保护方,不是盗墓)。
**完整故事框架先行**(整体弧线、选择点地图、维度覆盖、分支可比性),再逐章写作。
穿越设定的功能:合理化真实身份采集、强化"按本心选择"、授权剧情个性化。
开局以"登记穿越者身份"采集城市/年龄/性别/职业/学历——同时充当匹配的硬性过滤字段。
### 解谜线
用真实文史知识(碑文、星象、典籍)解谜。功能是**文化筛选器**:把"文化底蕴"从用户自报变成实测。
### 人际线
队伍内部的人际两难(分物资、意见冲突、信任抉择)。功能是**性格契合信号**,是喂给匹配模型的核心数据。
### 自我叙述(机制化讲述,2026-10-03 定型)
不做提问式采集。用户信息是**游戏资源**,通过四个机制由玩家主动花出:
**记忆钥匙**(剧情卡点需讲述一段真实记忆才能通行)、**故事换情报**(NPC 收故事不收钱)、
**篝火互惠**(NPC 先自我暴露制造互惠压力)、**言灵**(讲述的具体度直接化为数值收益——
游戏机制奖励"具体",而具体是真实的指纹)。
节奏:每章(30-45 分钟)1-2 个语音讲述点,每个 30 秒内给即时回报;时长永不强制;
沉默永远是合法选项("在什么面前沉默"本身也是数据)。
**追问补全**:用户讲述后,Jev 对文本做五感/人物/时空/情绪维度的缺失检测,
LLM 以 NPC 人设口吻就最高价值的缺口追问一句("院子里是什么味道?")。
每次讲述点追问至多 1-2 句;"记不清了"是合法回答(遗忘模式本身是数据),
且幻境清晰度 = 记忆清晰度,与设定自洽。
### 个性化生成:三通道模型(2026-10-03 确认)
原则:**元素不搬家,情绪在共振。** 主线事件、转折、选择点对所有玩家完全一致(保实测可比性)。
- **通道 1·情绪配色**:Jev 提取讲述的情绪签名,作为主线预写场景变体的选择器。
剧情功能相同,情感颜色不同。此通道 LLM 只做选择题。
- **通道 2·幻境机制**:借盗墓类型文学的"古墓读心"传统(致幻机关、问心镜),
用户的记忆意象在幻境关卡中字面呈现,常作为高潮戏/BOSS 战。LLM 生成限制在此通道内。
- **通道 3·档案馆里世界**:用户讲述的全部内容沉淀为档案馆中的私人"记忆展厅",
可回看,可授权匹配对象参观(破冰)。
## 实测框架(2026-10-03 确认)
三条铁律:
1. **消除"正确答案"**,不追求隐藏维度——选项两体面/两难堪,社会赞许性无从附着。
2. 同一特质换皮测 3-5 次,跨场景稳定模式才算数。
3. 只测对关系结果有预测力的维度。
维度:依恋类型、冲突处理风格、价值观与人生优先级、情绪稳定性、风险偏好、文化底蕴、实测择偶偏好。
辅助机制:行为数据(是否读完环境描述/对话)、一致性检验(表演人格与行为人格的撕裂即信号)、
Jev 置信度自适应——证据不足的维度在后续章节动态插入对应支线,支线必须作为剧情独立成立。
优先级:**可玩性 > 测量覆盖**,测量寄生在好玩上。
## 数据规则(2026-10-03 确认)
- **一次告知**:注册时告知"剧情选择将用于伴侣推荐",开场提示"按本心选,没有对错",之后不在选择点反复提醒。
- **历史不可涂改,可重玩**:不允许单独编辑选项(防止装修人设);重玩章节产生新行为轨迹,Jev 按时间衰减加权,最近轨迹权重最高。
## MVP 范围(2026-10-03 确认)
第一版 = 影游第一幕(2-3 章)+ 人格画像报告 + 勋章分享卡片。**不开匹配、不开聊天。**
匹配功能在杭州单城双性别池子各达数百活跃后再解锁。
## 架构决策记录
难逆转的决策见 `docs/adr/`:
- `0001` 合规定位:社交 app,不走游戏版号
- `0002` 匹配建模:心动度有向 / 契合度无向 / 匹配=双向过阈值
- `0003` AI 分工:SQL 硬过滤 + Jev 两两打分 + LLM 只做剧情(三通道边界)
- `0004` 数据规则:一次告知、历史不可涂改、可重玩时间衰减
@@ -0,0 +1,38 @@
# 0001 合规定位:申报为社交 App,不走游戏版号
**Status**: accepted (2026-10-03)
## 背景
本产品是一个陌生人交友匹配 app,但其前端体验和冷启动载体是一个互动叙事产品
(内部称"影游":漫画级静态美术 + 关键节点预生成视频 + 对话框选项 + 语音讲述)。
它看起来、玩起来都像游戏,因此在中国大陆上架时存在一个根本性的分类分叉:
申报为**游戏**还是**社交 app**。这个分叉决定监管路径、变现方式和内容口径,
且上线后几乎不可逆。
## 决定
申报为**社交/交友 app**。影游在产品内和所有宣传口径中称为"互动剧情测评",不使用
"游戏"字样。变现从第一天起按会员订阅/增值服务设计(对标探探/Soul),
不做任何游戏内购(卖道具、卖体力、抽卡等)。
## 备选方案
- **申报为游戏**:需要游戏版号。版号审批排队以年计,基本不对小团队开放,
恋爱/相亲题材过审难度极高。此路对本产品不通,被否决。
## 理由
1. 版号路线时间成本和不确定性是小团队无法承受的;
2. 社交 app 路径的合规义务(实名认证——交友类强制、ICP 备案/许可、内容审核机制、
未成年人隔离)虽然繁重,但都是可执行的工程问题;
3. 变现若走游戏内购,会被监管认定为游戏行为,摧毁社交 app 的申报口径,
因此变现设计必须与身份一致。
## 后果
- 应用商店上架类目为社交,需准备实名认证和内容审核能力;
- 影游内容(考古探险题材)在合规口径上主角是考古/文物保护方,不是盗墓;
- 剧本和运营文案需持续遵守"互动剧情测评"口径,避免任何"游戏化付费"表述;
- 该定位同时构成对竞品(青藤之恋等"学历认证+自填资料"产品)的差异叙事:
**实测 vs 自报**——本产品的人格数据来自互动剧情中的行为实测。
@@ -0,0 +1,40 @@
# 0002 匹配建模:心动度有向、契合度无向、匹配 = 双向心动过阈值
**Status**: accepted (2026-10-03)
## 背景
产品的核心动作是给用户两两评估"这两个人该不该互相推荐"。评估由 Jev
(TypeSafe AI 的 System One 模型,见 ADR-0003)完成:输入两个用户的资料与行为数据
作为"状态",输出类型化分数。建模时必须回答一个问题:A 对 B 的合适程度和 B 对 A 的
合适程度是不是同一个分数——这张关系图是有向的还是无向的?
## 决定
拆成两个概念,分别建模:
- **心动度 (Attraction)**:**单向、有向**。A 看到 B 的资料后产生兴趣的程度。
吸引天然不对称(A 觉得 B 有魅力不代表 B 看得上 A),A→B 与 B→A 是两个独立分数。
- **契合度 (Compatibility)**:**双向、无向**。两人长期相处的关系质量预期,
本质上对称(性格互补还是冲突不取决于谁先看到谁)。用途是向用户解释推荐理由
("你们都是安全型依恋,冲突风格互补"),不是匹配的门槛。
**匹配 (Match) 的成立条件:双向心动度都超过阈值。**
实现要点:Jev 一次请求可以携带多个问题并行回答、输出免费,因此一次调用即可
同时问"A 对 B 的心动度"和"B 对 A 的心动度"(可加契合度),有向建模不增加调用成本。
## 备选方案
- **单一对称分数**("这两人配不配,一个数"):被否决。它会掩盖单向吸引
(A 痴迷 B、B 无感的组合会得到一个中间分而被错误推荐),而线下交友的真相
恰恰是吸引不对称;Tinder 的双向右滑机制本质就是求两条有向边同时存在。
- **只建模心动度**:被否决。缺少长期关系质量信号,无法向用户给出有说服力的
推荐理由,而"解释力"是本产品对竞品的核心差异之一。
## 后果
- 数据模型需按**有序对**存储心动度(或存一次调用返回的双向结果);
- 用户可见的人格勋章(Badge)只是营销包装,**不是匹配输入**——匹配输入是
底层行为数据与维度画像,二者必须隔离,防止用户"装修人设"污染匹配信号
(见 ADR-0004)。
+57
View File
@@ -0,0 +1,57 @@
# 0003 AI 分工:SQL 硬过滤 + Jev 两两打分 + LLM 只做剧情
**Status**: accepted (2026-10-03)
## 背景
产品可用的 AI 能力有三类,成本和能力画像完全不同:
- **Jev**(TypeSafe AI 的 System One 模型):不生成文本;输入非结构化状态 +
类型化问题(choice/score/概率),一次前向传播并行回答全部问题,返回带校准
置信度的结构化答案。中位延迟约 100ms,输出 token 免费,输入极廉价。
- **前沿 LLM**(System Two):能生成文本(剧情、追问、画像报告),但慢且贵。
- **传统手段**:SQL 过滤、embedding 向量相似度,成本近乎为零。
产品的 AI 负载有三处:注册/叙事(生成剧情与个性化内容)、人格实测(从行为数据
产出维度画像)、匹配(海量两两评估)。分工错误会让成本或延迟爆炸。
## 决定
**三层分工,各就各位:**
1. **SQL 硬过滤(免费,先行)**:城市、年龄、性别、性取向等硬约束用数据库
谓词过滤,砍掉 90%+ 候选对。这些字段在"穿越者身份登记"的开局流程中
自然采集。绝不用 AI 判断硬约束——那是把最贵的资源花在最不需要智能的地方。
2. **Jev 两两打分(核心阵地)**:对过滤后的候选池,状态 = 双方资料 + 行为轨迹,
一次调用并行问"A→B 心动度 / B→A 心动度 / 契合度"(见 ADR-0002)。
候选池较大时分批调用(如每批 200 个候选,数千人分多批)。
Jev 同时承担人格实测:对用户行为轨迹按 7 个维度(依恋类型、冲突处理风格、
价值观与人生优先级、情绪稳定性、风险偏好、文化底蕴、择偶偏好)打分,
其**置信度用于自适应补测**——证据不足的维度在后续章节动态插入对应支线剧情。
3. **LLM 只做叙事,且受三通道边界约束**:
- 通道 1·情绪配色:LLM/Jev 只做预写场景变体的**选择**,不生成主线内容;
- 通道 2·幻境机制:LLM 可生成内容(用户记忆意象的幻境呈现、NPC 追问),
这是生成被允许的唯一通道;
- 通道 3·档案馆:用户讲述内容的沉淀与展示。
所有个性化内容在**章节之间预生成**,绝不在游玩过程中实时生成;
生成失败回退到通用版本。
## 备选方案
- **embedding 粗筛 + Jev 精排**:被产品负责人否决,倾向"尽量全用 Jev"。
折中结果:硬过滤层(SQL)不可省略,但语义层全部交给 Jev,接受分批调用的
工程复杂度。
- **Jev 直接对全量用户两两打分**:被否决。N 个用户每人刷新一次是 O(N²) 调用,
1 万用户一轮全量打分即上亿次调用,即使单价极低也不可持续;且绝大多数配对
被硬约束排除,根本不需要判断。
- **LLM 实时生成剧情**:被否决。延迟、成本、角色一致性和内容安全均不可控。
主线骨架(转折、选择点、结局树)必须全部预写——这既保质量,也保不同用户
行为数据的可比性(实测框架的底线)。
## 后果
- 匹配成本随**过滤后池子大小**增长,而非用户量的平方;
- 剧本生产流程必须交付"完整故事框架"(整体弧线、选择点地图、维度覆盖表、
每选择点的预写变体),然后才逐章写作;
- 人格画像、匹配打分、自适应支线路由都依赖 Jev 的结构化输出与置信度,
Jev 是不可替换的单点依赖,需在架构上接受这一点。
@@ -0,0 +1,61 @@
# 0004 数据规则:一次告知、历史不可涂改、可重玩时间衰减
**Status**: accepted (2026-10-03)
## 背景
产品的匹配质量完全依赖用户数据的真实性:剧情中的选择行为、语音讲述的个人经历
与记忆。两类风险威胁数据质量与合规:
1. **表演污染**:用户一旦知道"这会影响匹配",就有动机按理想人设作答
(社会赞许性偏差),把行为数据退化为自填问卷;
2. **合规**:人格画像数据用于伴侣推荐,属于《个人信息保护法》下需明确告知并
取得同意的处理行为;语音包含声纹(生物识别信息),个人经历属敏感个人信息。
## 决定
**告知规则**
- 注册时告知一次:"剧情选择将用于为你推荐伴侣",开场提示一次"按本心选,
没有对错",之后绝不在任何选择点/讲述点反复提醒。
- 理由:告知是合规义务也是卖点("每个选择都让 AI 更懂你"是留存钩子);
但反复提醒会激活表演欲。防表演的底线靠设计承担——选项无社会赞许方向、
行为数据(是否读完描述/对话)、一致性检验(表演人格与行为人格的撕裂即信号)、
游戏机制直接奖励"具体"(真实记忆自带细节,编造必然空泛)。
**不可涂改规则**
- 不允许单独编辑任何历史选择或讲述。一旦允许编辑,用户看到自己的画像/勋章后
回头修改,行为数据即降级为"装修人设"的自报数据,一致性检验同时失效。
**重玩与时间衰减**
- 章节可重玩。重玩产生**新的行为轨迹**而非修改历史;Jev 始终看到完整历史,
按时间衰减加权,最近轨迹权重最高(人会变,画像应当漂移)。
- 初刷与重玩区别对待:初刷视为本能,重刷视为经营,权重与解读不同。
- "我变了/选错了"的正当需求由重玩满足,不由编辑满足。
**敏感数据处理**
- 语音管线为"**特征提取后即焚**":音频只存在于处理窗口内,删除前提取两类产物——
(a) ASR 转写文本;(b) **韵律/声学特征**:语速、停顿分布、音高变化范围、能量、
填充词频率、情绪唤醒度、笑/叹息等副语言信号。这类特征与人格相关
(如外向性与语速/能量、神经质与音高波动在语音心理学文献中有对应关系),
且以不可逆的统计向量形式存储,**不含声纹**(不可用于身份识别、不可还原声音)。
- 韵律特征与转写文本一起作为状态输入 Jev;文本内容与语气特征的一致性本身也是信号
(嘴上说释然、声音在抖)。韵律特征同时服务于幻境的情绪配色(ADR-0003 通道 1)。
- 原始音频的唯一例外:用户主动 opt-in 保留某段做"声音名片"。
- 注册时的告知(见上)须覆盖"提取语音特征用于性格分析"。
- 用户的记忆与经历内容**仅作模型输入**,永不原样展示给匹配对象;
档案馆"记忆展厅"向匹配对象开放需用户逐次明确授权。
- 每次语音讲述点的追问至多 1-2 句(防审讯感);"记不清了"是合法回答。
## 备选方案
- **允许编辑选择**:被否决,理由见上(数据真实性是本产品的命脉,
"实测 vs 自报"是对竞品的全部差异)。
- **全程反复提示"请诚实"**:被否决。效力低(提示值 10 分,选项设计值 90 分),
且持续打断沉浸感。
## 后果
- 选择与讲述事件存储必须是 append-only,禁止 update 路径;
- 注册流程需包含告知与同意的 UX 与存证;
- 章节重玩是正式功能而非边缘 case,匹配与画像管线必须支持多轨迹加权;
- 语音管线默认"特征提取后即焚",原始音频存储是显式 opt-in。