# 进度追踪 · 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:互动节奏分析 分析最近互动的时间规律,为节奏判断提供数据支撑。 ### 数据获取 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%:对方主动性更强,是好信号,继续保持 --- ## 运行规则 - 进度报告应该让用户看完知道"我今天该做什么",不能只给状态描述 - 下一步行动必须具体,不能是"继续深化关系"这种没有操作性的话 - 不美化现状,也不过度悲观——用数据说话 - 若用户最近刚经历了重大事件(被拒/冷战/竞争对手出现),优先处理该事件,不走标准流程