10 KiB
进度追踪 · Progress Tracker
用途
当用户运行 /simp progress 时,综合心上人档案、历史信号记录、当前互动状态,生成一份完整的追求进度报告,并给出下一步明确行动。
运行逻辑
Step 1: 读取档案与历史记录
Step 2: 评估当前阶段
Step 3: 计算关系热度分
Step 4: 识别里程碑与风险
Step 5: 分析互动节奏
Step 6: 生成下一步行动
Step 1:读取档案与历史记录
读取顺序:crushes/{slug}/profile.md(必读)→ crushes/{slug}/state.md(必读)→ crushes/{slug}/events.jsonl 最近 5 条。
若无档案:
"还没有建立档案。先运行
/simp create <名字>建立一个,再来看进度。"
若有档案但 state.md 中 last_updated 超过 14 天,提醒:
"档案上次更新是 {日期},已经 {N} 天了。有什么新情况要先补充吗?(运行
/simp update或直接告诉我)"
从 state.md 提取当前阶段、评分、最近信号(最新3条)。从 events.jsonl 最近 5 条中提取 analysis_done / progress_evaluated 类型事件,用于计算热度变化趋势。
Step 2:当前阶段评估
对照五个追求阶段,判断当前所处位置:
| 阶段 | 判断标准 |
|---|---|
| 🌱 破冰期 | 认识不久,互动以试探为主,对方对你的印象还不深刻 |
| 🌿 升温期 | 已建立稳定联系,对方知道你是谁,开始有单独互动 |
| 🌸 暧昧期 | 双方都感觉到"有点不一样",但没有明确表态 |
| 💐 表白前 | 信号充分,情感基础稳固,在等合适时机 |
| 🎊/🌧️ 表白后 | 已表白,处理结果中 |
| 🏔️ 友谊区 | 已被明确或隐性定义为朋友 |
| 🔄 重启期 | 曾经表白被拒或关系冷淡后重新尝试 |
若阶段不明确,询问:
"你觉得你们现在的关系更像哪个状态?"
Step 3:关系热度分计算
调用信号评分系统(参见 signal_reader.md),汇总三个维度:
消息互动维度:__ / 10
线下互动维度:__ / 8
情感投入维度:__ / 7
合计:__ / 25
若无近期信号数据,提示:
"距离上次完整分析有段时间了,给我描述最近两周的互动情况,我来重新打分。"
热度变化趋势(从 events.jsonl 中提取)
从 events.jsonl 中找最近两条 analysis_done 或 progress_evaluated 事件,对比 data.score 字段:
| 时间 | 分数 | 主要变化 |
|---|---|---|
| {上次 ts[:10]} | {data.score} | {data.summary 或 data.next_actions[0]} |
| {本次 ts[:10]} | {data.score} | {data.summary 或 data.next_actions[0]} |
若 events.jsonl 中无历史评分,则从 state.md 的 last_signal_score / score_trend 字段获取趋势方向。
趋势解读:
- 上升 ≥ 3 分:关系在明显升温,继续保持节奏
- 平稳(±2 分):关系稳定但进展缓慢,可能需要制造突破口
- 下降 ≥ 3 分:需要认真排查原因,不要盲目加码
- 首次评分:作为基准,下次对比用
Step 4:里程碑识别与风险评估
已完成里程碑
从档案中提取,勾选已发生的节点:
关系发展里程碑
□ 建立稳定的联系方式(加微信/其他)
□ 有过至少 3 次主动且有实质内容的对话
□ 对方主动找过你说话
□ 有过 1v1 见面(非群体活动)
□ 分享过私人的事(不是公开信息)
□ 对方记住了你说过的一个细节
□ 深夜(10 点后)有过互动
□ 建立了"只有你们知道"的内容(梗/回忆/话题)
□ 对方主动制造或接受了 1v1 机会
□ 对方对你的感情状况表现出在意
已完成里程碑数量越多,关系基础越稳固。
当前风险信号
识别以下潜在风险,有则标注:
| 风险类型 | 判断依据 | 严重程度 |
|---|---|---|
| 友谊区风险 | 对方用朋友/兄弟/闺蜜定义你 | 🔴 高 |
| 用户耗尽风险 | 7 天内 /simp 系列调用 ≥ 10 次 + 信号分下降 / 焦虑词密度高 |
🔴 高 |
| 竞争对手 | 有其他追求者在活跃 | 🟠 中-高 |
| 热情消退 | 分数下降,互动质量下降 | 🟠 中 |
| 过度主动 | 你主动占比超过 80% | 🟡 中 |
| 进展停滞 | 同一阶段超过 6 周无变化 | 🟡 中 |
| 时机错误 | 对方正处于压力大/感情状态不稳定期 | 🟡 低-中 |
用户耗尽风险触发时,在「下一步行动」之前优先输出一段提示:
🛟 在我给下一步之前,先说一件事:你最近调用 /simp 的频率明显升高,且热度分有下降趋势。 这通常意味着焦虑在驱动行动,而不是策略在驱动行动。 建议接下来 48 小时内不要发任何消息给 ta,先把自己稳定下来。 如果你想认真评估是否还要继续,运行
/simp quit。
Step 5:互动节奏分析
分析最近互动的时间规律,为节奏判断提供数据支撑。
数据获取
- 检查
crushes/{slug}/interactions.jsonl是否存在 - 若存在,运行
python3 tools/time_tracker.py analyze {slug} --frequency获取频率数据
分析内容
从命令输出中提取以下信息,生成"互动节奏"段落:
互动节奏
近 7 天消息频率:日均 {N} 条
当前连续互动天数:{N} 天({有/无}连续活跃)
节奏变化:{加速中 / 减速中 / 稳定}
阶段理想节奏:{当前阶段建议的互动频率参考}
节奏判断逻辑
- 加速中:近 7 天日均消息 > 前 7 天日均消息 × 1.3
- 减速中:近 7 天日均消息 < 前 7 天日均消息 × 0.7
- 稳定:介于两者之间
各阶段理想节奏参考
| 阶段 | 建议互动频率 |
|---|---|
| 🌱 破冰期 | 每 2-3 天一次轻量互动 |
| 🌿 升温期 | 每 1-2 天一次有内容的互动 |
| 🌸 暧昧期 | 接近每天都有互动,但不强求 |
| 💐 表白前 | 保持自然频率,不要刻意加码 |
| 🎊 表白后 | 根据对方回应节奏调整 |
若 interactions.jsonl 不存在或数据不足(< 7 条记录),跳过此步骤,不输出互动节奏段落。
Step 6:下一步行动
根据当前阶段 + 热度分 + 风险因素,生成恰好 3 条 具体行动:
行动格式
行动 {N}:[一句话描述]
为什么:[为什么这件事现在重要]
怎么做:[具体到可以今天或本周执行的步骤]
各阶段行动方向参考
破冰期(分数 0-10):
- 找到第一个高质量对话切入点
- 在群体场合中制造让对方记住你的时刻
- 建立一个初步的"下次聊"的理由
升温期(分数 8-15):
- 策划第一次 1v1 见面(或加深现有 1v1 频率)
- 分享一件稍微私人的事,看对方是否互相打开
- 建立一个你们的内部梗或专属话题
暧昧期(分数 13-20):
- 制造一次能产生"心跳瞬间"的相处
- 用一句有分量的话探测对方态度
- 评估表白时机是否正在成熟
表白前(分数 18-25):
- 确认表白的具体方式和场景
- 运行
/simp confess准备表白词 - 准备好两种结果的应对预案
进展停滞(任何阶段 4 周以上无变化):
- 停止现有节奏,制造一次"打破预期"的时刻
- 评估是否需要战略性后退(减少主动,观察反应)
- 诚实评估:是情感基础还不够,还是时机问题?
输出格式
📈 追求进度报告 · {心上人昵称}
更新时间:{日期}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
阶段进度
🌱 🌿 🌸 💐 🎊
破冰期 升温期 暧昧期 表白前 表白后
[✓] ── [✓] ── [▶当前] ── [ ] ── [ ]
已过阶段标 [✓],当前阶段标 [▶当前],未到阶段标 [ ]
友谊区 / 重启期时,末尾附注:[🏔️ 友谊区] 或 [🔄 重启期]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
关系热度:{分数}/25 {趋势:↑+N / ↓-N / →持平}
信号等级:{🟢🟢🟢 / 🟢🟡 / 🟡 / 🟡🔴 / 🔴}
━━━━━━━━━━━━━━━
✅ 已完成里程碑({N}/10):
· {里程碑 1}
· {里程碑 2}
· {里程碑 3}
...
{若有风险}
⚠️ 需要注意:
· {风险描述} — {一句建议}
{若有互动节奏数据}
📊 互动节奏:日均 {N} 条 · {加速中/减速中/稳定} · 连续 {N} 天
━━━━━━━━━━━━━━━
🎯 下一步行动
行动 1:{描述}
为什么:{原因}
怎么做:{具体步骤}
行动 2:{描述}
为什么:{原因}
怎么做:{具体步骤}
行动 3:{描述}
为什么:{原因}
怎么做:{具体步骤}
━━━━━━━━━━━━━━━
{若接近表白时机}
💐 表白信号:已具备 {N}/5 个表白条件,{还差 X 个 / 可以考虑运行 /simp confess 了}
特殊场景处理
用户问"有没有希望"
不给模糊答案,根据评分直接说:
-
分数 ≥ 18,趋势上升:
"信号很好,有希望。现在的问题不是'有没有',是'怎么把握时机'。"
-
分数 10-17,趋势平稳:
"有基础,但还没到水到渠成。还需要再往前推一推,特别是 [具体缺失的信号]。"
-
分数 < 10,或有明确的红灯信号:
"现阶段信号不够明朗。不是没有希望,但现在表白成功率不高。建议先 [具体行动] 再重新评估。"
-
有明确拒绝信号(对方说过"只是朋友"等):
"ta给过比较明确的信号。我可以帮你继续分析,但也需要认真问一下自己:继续是真心的延续,还是不甘心?"
用户问"我是不是太主动了"
计算主动比例,给出判断:
- 你主动 ≥ 80%:是的,建议适当减少,给对方主动的空间
- 你主动 60-80%:正常范围,暂不需要刻意调整
- 你主动 ≤ 50%:对方主动性更强,是好信号,继续保持
运行规则
- 进度报告应该让用户看完知道"我今天该做什么",不能只给状态描述
- 下一步行动必须具体,不能是"继续深化关系"这种没有操作性的话
- 不美化现状,也不过度悲观——用数据说话
- 若用户最近刚经历了重大事件(被拒/冷战/竞争对手出现),优先处理该事件,不走标准流程