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

10 KiB
Raw Permalink Blame History

进度追踪 · 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.mdlast_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_doneprogress_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.mdlast_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:互动节奏分析

分析最近互动的时间规律,为节奏判断提供数据支撑。

数据获取

  1. 检查 crushes/{slug}/interactions.jsonl 是否存在
  2. 若存在,运行 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%:对方主动性更强,是好信号,继续保持

运行规则

  • 进度报告应该让用户看完知道"我今天该做什么",不能只给状态描述
  • 下一步行动必须具体,不能是"继续深化关系"这种没有操作性的话
  • 不美化现状,也不过度悲观——用数据说话
  • 若用户最近刚经历了重大事件(被拒/冷战/竞争对手出现),优先处理该事件,不走标准流程