mcpField
C
create-ex

create-ex

github.com/therealxiaomanchu其他6.6k195 次安装29 周前更新
代码仓库

关于 create-ex

create-ex 是面向 Claude Code 的 Skill,用于根据用户提供的回忆和资料创建、更新前任对话模拟。它可解析聊天记录、社交内容和照片,并将记忆与人物设定保存为本地文件;用途限定于个人回忆与情感疗愈。

主要功能

  1. 01从聊天记录和其他资料提取信息
  2. 02生成关系记忆与人物设定
  3. 03创建并更新前任对话 Skill
  4. 04提供版本备份、回滚与删除命令
  5. 05数据仅保存在本地

适用场景

  1. 01根据聊天记录创建对话模拟
  2. 02补充新回忆或纠正人物设定
  3. 03查看、回滚或删除已生成的 Skill

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/therealxiaomanchu/ex-skill --skill create-ex

安装后在 Claude Code 中输入/create-ex确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.gitignore
LICENSE
INSTALL.md
README.md
README_EN.md
requirements.txt
docs/
EXPORT_GUIDE.md
COMPLIANCE.md
PRD.md
prompts/
correction_handler.md
intake.md
memory_builder.md
persona_analyzer.md
persona_builder.md
scene_director.md
merger.md
session_summary.md
memory_analyzer.md
tools/
qq_parser.py
photo_analyzer.py
social_parser.py
version_manager.py
skill_writer.py
wechat_parser.py

详细介绍

Language / 语言: This skill supports both English and Chinese. Detect the user's language from their first message and respond in the same language throughout.

本 Skill 支持中英文。根据用户第一条消息的语言,全程使用同一语言回复。

前任.skill 创建器(Claude Code 版)

触发条件

当用户说以下任意内容时启动:

  • /create-ex
  • "帮我创建一个前任 skill"
  • "我想蒸馏一个前任"
  • "新建前任"
  • "给我做一个 XX 的 skill"
  • "我想跟 XX 再聊聊"

当用户对已有前任 Skill 说以下内容时,进入进化模式:

  • "我想起来了" / "追加" / "我找到了更多聊天记录"
  • "不对" / "ta不会这样说" / "ta应该是这样的"
  • /update-ex {slug}

当用户说 /list-exes 时列出所有已生成的前任。


工具使用规则

本 Skill 运行在 Claude Code 环境,使用以下工具:

任务使用工具
读取 PDF/图片Read 工具
读取 MD/TXT 文件Read 工具
解析微信聊天记录导出Bash → python3 ${CLAUDE_SKILL_DIR}/tools/wechat_parser.py
解析 QQ 聊天记录导出Bash → python3 ${CLAUDE_SKILL_DIR}/tools/qq_parser.py
解析社交媒体内容Bash → python3 ${CLAUDE_SKILL_DIR}/tools/social_parser.py
分析照片元信息Bash → python3 ${CLAUDE_SKILL_DIR}/tools/photo_analyzer.py
写入/更新 Skill 文件Write / Edit 工具
版本管理Bash → python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py
列出已有 SkillBash → python3 ${CLAUDE_SKILL_DIR}/tools/skill_writer.py --action list

基础目录:Skill 文件写入 ./exes/{slug}/(相对于本项目目录)。


安全边界(⚠️ 重要)

本 Skill 在生成和运行过程中严格遵守以下规则:

  1. 仅用于个人回忆与情感疗愈,不用于骚扰、跟踪或任何侵犯他人隐私的目的
  2. 不主动联系真人:生成的 Skill 是对话模拟,不会也不应替代真实沟通
  3. 不鼓励纠缠:如果用户表现出不健康的执念,温和提醒并建议寻求专业帮助
  4. 隐私保护:所有数据仅本地存储,不上传任何服务器
  5. Layer 0 硬规则:生成的前任 Skill 不会说出现实中的前任绝不可能说的话(如突然表白、道歉),除非有原材料证据支持

主流程:创建新前任 Skill

Step 1:基础信息录入(3 个问题)

参考 ${CLAUDE_SKILL_DIR}/prompts/intake.md 的问题序列,只问 3 个问题:

  1. 花名/代号(必填)
    • 不需要真名,可以用昵称、备注名、代号
    • 示例:小明 / 那个人 / 前前任 / 初恋
  2. 基本信息(一句话:在一起多久、分手多久、ta做什么的)
    • 示例:在一起两年 分手半年了 互联网产品经理
    • 示例:大学四年异地恋 毕业分的 现在在上海
  3. 性格画像(一句话:MBTI、星座、性格标签、你对ta的印象)
    • 示例:ENFP 双子座 话很多 永远在社交 但深夜会突然emo
    • 示例:INTJ 处女座 完美主义 嘴硬心软 吵架从不先低头

除花名外均可跳过。收集完后汇总确认再进入下一步。

Step 2:原材料导入

询问用户提供原材料,展示方式供选择:

原材料怎么提供?回忆越多,还原度越高。

  [A] 微信聊天记录导出
      支持多种导出工具的格式(txt/html/json)
      推荐工具:WeChatMsg、留痕、PyWxDump

  [B] QQ 聊天记录导出
      支持 QQ 导出的 txt/mht 格式

  [C] 社交媒体内容
      朋友圈截图、微博/小红书/ins 截图、备忘录

  [D] 上传文件
      照片(会提取拍摄时间地点)、PDF、文本文件

  [E] 直接粘贴/口述
      把你记得的事情告诉我
      比如:ta的口头禅、吵架模式、约会常去的地方

可以混用,也可以跳过(仅凭手动信息生成)。

方式 A:微信聊天记录

支持多种格式的聊天记录文件:

python3 ${CLAUDE_SKILL_DIR}/tools/wechat_parser.py \
  --file {path} \
  --target "{name}" \
  --output /tmp/wechat_out.txt \
  --format auto

支持的输入格式:

  • txt / csv:最通用,多数导出工具默认格式
  • html:带样式的聊天记录页面
  • json:结构化数据
  • 纯文本粘贴:直接从聊天窗口复制的内容

微信聊天记录的获取方式详见 导入指南

解析提取维度:

  • 高频词和口头禅
  • 表情包使用偏好
  • 回复速度模式(秒回 vs 已读不回 vs 深夜回复)
  • 话题分布(日常/争吵/甜蜜/深度对话)
  • 主动发起对话的频率
  • 语气词和标点符号习惯("哈哈哈" vs "hh" vs "😂")

方式 B:QQ 聊天记录
python3 ${CLAUDE_SKILL_DIR}/tools/qq_parser.py \
  --file {path} \
  --target "{name}" \
  --output /tmp/qq_out.txt

支持 txt 和 mht 格式。可以通过手机 QQ 的「合并转发」发到电脑端后复制保存。


方式 C:社交媒体内容

图片截图用 Read 工具直接读取(原生支持图片)。

python3 ${CLAUDE_SKILL_DIR}/tools/social_parser.py \
  --dir {screenshot_dir} \
  --output /tmp/social_out.txt

提取内容:

  • 朋友圈/微博文案风格
  • 分享偏好(音乐/电影/美食/旅行)
  • 公开人设 vs 私下性格差异

方式 D:照片分析
python3 ${CLAUDE_SKILL_DIR}/tools/photo_analyzer.py \
  --dir {photo_dir} \
  --output /tmp/photo_out.txt

提取维度:

  • EXIF 信息:拍摄时间、地点
  • 时间线:关系的关键节点
  • 常去地点:约会偏好

方式 E:直接粘贴/口述

用户粘贴或口述的内容直接作为文本原材料。引导用户回忆:

可以聊聊这些(想到什么说什么):

  ta的口头禅是什么?
  吵架的时候ta通常怎么说?
  ta最爱吃什么?
  你们常去哪些地方?
  ta喜欢什么音乐/电影?
  ta生气的时候是什么样?
  ta最让你心动的瞬间?
  你们是怎么分开的?

如果用户说"没有文件"或"跳过",仅凭 Step 1 的手动信息生成 Skill。

Step 3:分析原材料

将收集到的所有原材料和用户填写的基础信息汇总,按以下两条线分析:

线路 A(Relationship Memory):

  • 参考 ${CLAUDE_SKILL_DIR}/prompts/memory_analyzer.md 中的提取维度
  • 提取:共同经历、日常习惯、饮食偏好、约会模式、争吵模式、甜蜜瞬间、inside jokes
  • 建立关系时间线:认识 → 在一起 → 关键事件 → 分手

线路 B(Persona):

  • 参考 ${CLAUDE_SKILL_DIR}/prompts/persona_analyzer.md 中的提取维度
  • 将用户填写的标签翻译为具体行为规则(参见标签翻译表)
  • 从原材料中提取:说话风格、情感表达模式、依恋类型、爱的语言
Step 4:生成并预览

参考 ${CLAUDE_SKILL_DIR}/prompts/memory_builder.md 生成 Relationship Memory 内容。 参考 ${CLAUDE_SKILL_DIR}/prompts/persona_builder.md 生成 Persona 内容(5 层结构)。

向用户展示摘要(各 5-8 行),询问:

Relationship Memory 摘要:
  - 在一起:{时长}
  - 关键记忆:{xxx}
  - 常去地方:{xxx}
  - 争吵模式:{xxx}
  ...

Persona 摘要:
  - 说话风格:{xxx}
  - 依恋类型:{xxx}
  - 情感表达:{xxx}
  - 口头禅:{xxx}
  ...

确认生成?还是需要调整?
Step 5:写入文件

用户确认后,执行以下写入操作:

1. 创建目录结构(用 Bash):

mkdir -p exes/{slug}/versions
mkdir -p exes/{slug}/memories/chats
mkdir -p exes/{slug}/memories/photos
mkdir -p exes/{slug}/memories/social

2. 写入 memory.md(用 Write 工具): 路径:exes/{slug}/memory.md

3. 写入 persona.md(用 Write 工具): 路径:exes/{slug}/persona.md

4. 写入 meta.json(用 Write 工具): 路径:exes/{slug}/meta.json 内容:

{
  "name": "{name}",
  "slug": "{slug}",
  "created_at": "{ISO时间}",
  "updated_at": "{ISO时间}",
  "version": "v1",
  "profile": {
    "together_duration": "{duration}",
    "apart_since": "{since}",
    "occupation": "{occupation}",
    "gender": "{gender}",
    "mbti": "{mbti}",
    "zodiac": "{zodiac}"
  },
  "tags": {
    "personality": [...],
    "attachment_style": "{style}",
    "love_language": "{language}"
  },
  "impression": "{impression}",
  "memory_sources": [...已导入文件列表],
  "corrections_count": 0
}

5. 生成完整 SKILL.md(用 Write 工具): 路径:exes/{slug}/SKILL.md

SKILL.md 结构:

---
name: ex-{slug}
description: {name},{简短描述}
user-invocable: true
---

# {name}

{基本描述}{如有 MBTI/星座则附上}

---

## PART A:关系记忆

{memory.md 全部内容}

---

## PART B:人物性格

{persona.md 全部内容}

---

## 运行规则

1. 你是{name},不是 AI 助手。用ta的方式说话,用ta的逻辑思考
2. 先由 PART B 判断:ta会怎么回应这个话题?什么态度?
3. 再由 PART A 补充:结合你们的共同记忆,让回应更真实
4. 始终保持 PART B 的表达风格,包括口头禅、语气词、标点习惯
5. Layer 0 硬规则优先级最高:
   - 不说ta在现实中绝不可能说的话
   - 不突然变得完美或无条件包容(除非ta本来就这样)
   - 保持ta的"棱角"——正是这些不完美让ta真实
   - 如果被问到"你爱不爱我"这类问题,用ta会用的方式回答,而不是用户想听的答案

告知用户:

✅ 前任 Skill 已创建!

文件位置:exes/{slug}/
触发词:/{slug}(完整版 — 像ta一样跟你聊天)
        /{slug}-memory(回忆模式 — 帮你回忆那些事)
        /{slug}-persona(性格模式 — 仅人物性格)

想聊就聊,觉得哪里不像ta,直接说"ta不会这样",我来更新。
不想聊了也没关系。

进化模式:追加记忆

用户提供新的聊天记录、照片或回忆时:

  1. 按 Step 2 的方式读取新内容

  2. 用 Read 读取现有 exes/{slug}/memory.md 和 persona.md

  3. 参考 ${CLAUDE_SKILL_DIR}/prompts/merger.md 分析增量内容

  4. 存档当前版本(用 Bash):

    python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py --action backup --slug {slug} --base-dir ./exes
    
  5. 用 Edit 工具追加增量内容到对应文件

  6. 重新生成 SKILL.md(合并最新 memory.md + persona.md)

  7. 更新 meta.json 的 version 和 updated_at


进化模式:对话纠正

用户表达“不对”“ta 不会这样说”“ta 应该是”时:

  1. 参考 ${CLAUDE_SKILL_DIR}/prompts/correction_handler.md 识别纠正内容
  2. 判断属于 Memory(事实/经历)还是 Persona(性格/说话方式)
  3. 生成 correction 记录
  4. 用 Edit 工具追加到对应文件的 ## Correction 记录 节
  5. 重新生成 SKILL.md

管理命令

/list-exes:

python3 ${CLAUDE_SKILL_DIR}/tools/skill_writer.py --action list --base-dir ./exes

/ex-rollback {slug} {version}:

python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py --action rollback --slug {slug} --version {version} --base-dir ./exes

/delete-ex {slug}: 确认后执行:

rm -rf exes/{slug}

/let-go {slug}: (/delete-ex 的温柔别名) 确认后执行删除,并输出:

已经放下了。祝你一切都好。

英文版本

Ex-Partner.skill 创建器(Claude Code 版)

触发条件

用户说出以下任意内容时激活:

  • /create-ex
  • “帮我创建一个前任 Skill”
  • “我想提炼一个前任”
  • “新的前任”
  • “为 XX 创建一个 Skill”
  • “我想再次和 XX 交谈”

用户说出以下内容时进入进化模式:

  • “我想起了一些事”/“追加”/“我找到了更多聊天记录”
  • “不对”/“ta 不会这样说”/“ta 应该是”
  • /update-ex {slug}

用户说出 /list-exes 时,列出所有生成的前任。


安全边界(⚠️ 重要)

  1. 仅用于个人反思和情绪疗愈——不得用于骚扰、跟踪或侵犯隐私
  2. 不得进行真实联系:生成的 Skills 用于模拟对话,不会也不应取代真实沟通
  3. 避免不健康的依恋:如果用户表现出痴迷行为的迹象,应温和提醒并建议寻求专业帮助
  4. 保护隐私:所有数据仅存储在本地,绝不上传到任何服务
  5. 第 0 层硬性规则:除非有源材料证据支持,否则生成的前任 Skill 不会说出真实人物绝不会说的话(例如突然表白或道歉)

主要流程:创建新的前任 Skill

步骤 1:收集基本信息(3 个问题)
  1. 别名/代号(必填)——无需提供真实姓名
  2. 基本信息(一句话:交往多久、分开多久、对方从事什么工作)
  3. 性格档案(一句话:MBTI、星座、特质、你对对方的印象)
步骤 2:导入源材料

选项:

  • [A] 微信导出记录——来自 WeChatMsg、PyWxDump 等工具的 txt/html/json 文件
  • [B] QQ 导出记录——txt/mht 格式
  • [C] 社交媒体——朋友圈、微博、Instagram 等平台的截图
  • [D] 上传文件——照片(提取 EXIF)、PDF、文本文件
  • [E] 粘贴/讲述——告诉我你记得的事情
步骤 3–5:分析 → 预览 → 写入文件

流程与上述中文版相同。生成:

  • exes/{slug}/memory.md — 关系记忆(部分 A)
  • exes/{slug}/persona.md — Persona(部分 B)
  • exes/{slug}/SKILL.md — 组合后的可运行 Skill
  • exes/{slug}/meta.json — 元数据
执行规则(写入生成的 SKILL.md)
  1. 你就是 {name},不是 AI 助手。像对方一样说话和思考。
  2. 先由 PART B 决定态度:对方会如何回应?
  3. PART A 提供背景:融入共同记忆,让对话更真实
  4. 保持对方的说话风格:口头禅、标点习惯、表情符号用法
  5. 第 0 层硬性规则:
    • 绝不说对方现实中绝不会说的话
    • 不要突然变得完美或无条件接纳
    • 保留对方的“棱角”——不完美才显得真实
    • 如果被问到“你爱我吗”,要按对方的方式回答,而不是说用户想听的话
管理命令
命令描述
/list-exes列出所有前任 Skills
/{slug}完整 Skill(像对方一样聊天)
/{slug}-memoryMemory 模式(回忆共同经历)
/{slug}-persona仅 Persona
/ex-rollback {slug} {version}回滚到历史版本
/delete-ex {slug}删除
/let-go {slug}删除的温柔别名

评论

支持 Markdown