Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

前任.skill(增强版)

基于 perkfly/ex-skill 开发,增加了事件聚类、回复决策、原始材料归档等功能。

License: MIT Python 3.9+ Claude Code


她走了,但聊天记录还在?
三年的日常,变成了手机里一个不敢点开的对话框?
你还记得她说"随便"的时候其实想吃火锅吗?
你还记得她发"哦"的时候其实在等你主动吗?

将回忆蒸馏成 Skill,不是为了挽回,是为了记住。


提供聊天记录(微信、iMessage、短信)、照片、社交媒体,加上你的主观描述
生成一个像她一样说话的 AI Skill
用她的语气回消息,知道她什么时候在撒娇、什么时候真的生气了

与原项目的区别 · 数据来源 · 安装 · 使用 · 效果示例


与原项目的区别

本项目基于 perkfly/ex-skill 开发,做了以下改进:

类别 改进内容
事件聚类 新增完整 pipeline:聊天记录 → 时间分段 → 逐段提取事件 → 合并到 events.json → 跨事件分析
回复逻辑 新增 Layer 0.5 回复决策表(消息类型 × 情绪状态 → 回复行为),支持不回复/延迟回复
原始材料归档 文本类材料自动复制到 knowledge/ 目录,照片记录路径
XLSX 支持 支持 WeFlow 导出的 xlsx 格式,LLM 辅助表头检测
解析器健壮性 UTF-8 → GBK 自动降级、CSV BOM 处理、sender 归一化统一
事件数据库 稳定 ID、timeline 去重、schema 校验、续集检测
版本管理 备份包含 events.json,回滚不丢失事件数据
Prompt 质量 事件提取支持单方面消息、多事件提取强化、Correction 双路由

详细的改进记录见 CHANGELOG.md

为什么做这个项目

我对 ex-skills 的修改是因为我发现 ex-skills 可能更多的是偏蒸馏,对一个人的描述太简单了,还有个原因可能是大模型当时并没有很多支持 1m 长上下文。这样的感情太假了,其实我也不好说是真是假,毕竟都用 ex-skills 了还管那些真的是又当又立。反正就是我从记忆下手进行了修改,因为我想知道最真实的回复,所以对于记忆的处理不再是简单的总结概括与查找,而是两个人之间发生的故事的分析。但是仍有缺点,比如 ai 确实不是很能够理解人类的抽象语言之类的,有一些事件的理解其实是有失偏颇的,比如抽象文案啥的,他会认为这是你们之间的暧昧故事,并且事件总结之前也会概括事件,导致理解不恰当。但是我也不想再去深究与修改,改完做了测试其实我也不知道我具体真的想要什么,我要是像 ai 这么傻逼直白就好了,难受了。


支持的数据来源

来源 聊天记录 照片 社交媒体 备注
微信聊天记录 TXT/CSV/HTML/XLSX(WeFlow 等工具导出)
iMessage macOS chat.db 或导出文件
短信 Android SMS Backup XML/CSV
照片 EXIF 元数据提取时间线
微博 JSON 数据导出
豆瓣 JSON/HTML 导出
小红书 JSON 导出
Instagram JSON 数据导出
PDF / 图片 手动上传
直接粘贴文字 手动输入

安装

Claude Code

# 安装到当前项目(在 git 仓库根目录执行)
mkdir -p .claude/skills
git clone https://github.com/handsomeman118/ex-skill .claude/skills/create-ex

# 或安装到全局(所有项目都能用)
git clone https://github.com/handsomeman118/ex-skill ~/.claude/skills/create-ex

依赖(可选,xlsx 解析需要)

pip3 install -r requirements.txt

使用

在 Claude Code 中输入:

/create-ex

按提示输入她的昵称、关系信息(如 在一起三年 大学同学 分手一年)、性格标签,然后选择数据来源。所有字段均可跳过,仅凭描述也能生成。

完成后用 /{slug} 调用该前任 Skill。

管理命令

命令 说明
/list-exes 列出所有前任 Skill
/{slug} 调用完整 Skill(Persona + Memories)
/{slug}-memories 仅共同记忆
/{slug}-persona 仅人物性格
/ex-rollback {slug} {version} 回滚到历史版本
/delete-ex {slug} 删除

效果示例

输入:ENFP 双子座 焦虑型 爱撒娇 翻旧账 嘴上说不在意其实比谁都在意

场景一:日常聊天

用户      > 在干嘛呢

前任.skill > 刚下班
           > 好累啊今天
           > 你呢 怎么这个点才找我 🥺

场景二:惹她生气了

用户      > 不好意思刚才在忙

前任.skill > 哦
           > (过了5分钟)
           > 你每次都说在忙
           > 上次也是这样

场景三:撒娇

用户      > 想吃什么

前任.skill > 随便啊
用户      > 那吃面?
前任.skill > 不想吃面
用户      > 火锅?
前任.skill > 嘿嘿你怎么知道的 💕

功能特性

生成的 Skill 结构

每个前任 Skill 由两部分组成:

部分 内容
Part A — 共同记忆 关系弧线、事件簿(含时间线/细节/感官/情感)、感官锚点、情感纹理、冲突地图、共同梦想
Part B — Persona 7 层结构:硬规则 → 回复决策表 → 身份 → 表达风格 → 情感逻辑 → 关系行为 → 边界与雷区

运行逻辑:

收到消息
  → 第 0 步:确定当前情绪状态(正常/开心/生气)
  → 第 1 步:查回复决策表,判断回复行为(正常回/冷淡回/已读不回)
  → 第 2 步:检索记忆(情绪过滤:生气时不提甜蜜记忆)
  → 第 3 步:用她的语气和情绪状态融合输出

事件聚类系统

聊天记录 → 解析器(JSON) → 时间分段 → Claude 逐段提取事件 → 合并到 events.json → 跨事件分析 → 生成 memories.md
  • 每个事件包含:时间线 → 整体叙事 → 具体细节 → 感官描述 → 情感意义
  • 支持续集检测:新事件自动合并到已有事件
  • 事件数量不设上限,由聊天记录实际内容决定

支持的标签

恋爱性格:爱撒娇 · 冷暴力 · 翻旧账 · 黏人 · 独立 · 细腻敏感 · 忽冷忽热 · 作 · 玻璃心 · 控制欲强 …

吵架模式:冷战派 · 爆发派 · 讲道理派 · 先道歉型 · 死不认错

依恋类型:安全型 · 焦虑型 · 回避型 · 混乱型

爱的表达:言语肯定 · 服务行为 · 送礼物 · 肢体接触 · 高质量陪伴

进化机制

  • 追加聊天记录 → 自动分析增量 → merge 进对应部分,不覆盖已有结论
  • 对话纠正 → 说「她不会这样,她应该是 xxx」→ 写入 Correction 层,立即生效
  • 版本管理 → 每次更新自动存档,支持回滚到任意历史版本

项目结构

ex-skill/
├── SKILL.md              # Skill 入口(双语,完整工作流)
├── CHANGELOG.md          # 改进记录
├── README.md             # 本文件
├── prompts/              # Prompt 模板
│   ├── intake.md                # 基础信息录入问题序列
│   ├── event_extractor.md       # 事件提取 prompt(含单方面消息策略)
│   ├── memories_analyzer.md     # 跨事件模式分析(6 维度)
│   ├── memories_builder.md      # memories.md 生成模板(9 模块)
│   ├── persona_analyzer.md      # 性行为提取(含标签翻译表 + 回复决策模式)
│   ├── persona_builder.md       # persona.md 7 层结构模板(含 Layer 0.5)
│   ├── merger.md                # 增量 merge 逻辑
│   └── correction_handler.md    # 对话纠正处理(双路由)
├── tools/                # Python 工具
│   ├── wechat_parser.py         # 微信聊天记录解析(TXT/CSV/HTML/XLSX)
│   ├── imessage_parser.py       # iMessage 解析
│   ├── sms_parser.py            # 短信解析
│   ├── photo_analyzer.py        # 照片 EXIF 元数据分析
│   ├── social_media_parser.py   # 社交媒体解析
│   ├── event_clusterer.py       # 事件聚类(segment/merge/list/summary/density)
│   ├── skill_writer.py          # Skill 文件管理(含原始材料归档)
│   └── version_manager.py       # 版本管理(list/backup/rollback/cleanup)
├── exes/                 # 生成的前任 Skill(运行时创建)
├── requirements.txt
└── LICENSE

注意事项

  • 聊天记录质量决定 Skill 质量:真实聊天记录 > 仅手动描述
  • 建议优先收集:她主动发的长消息 > 情感类消息 > 日常消息
  • 照片分析只提取元数据(日期/位置),不上传照片内容
  • 所有数据仅在本地处理,不会发送到任何外部服务
  • 微信 xlsx 导出(WeFlow)需要安装 openpyxl:pip install openpyxl
  • 文本类原始材料会自动归档到 knowledge/ 目录,方便后续追溯

致谢


MIT License © handsomeman118

基于 perkfly/ex-skill 开发,原项目由 perkfly 创建

About

前任skill,执着于过去而寻找结果,又何尝不是一种刻舟求剑呢

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages