create-ex について
create-exは、Claude Code向けに元パートナーの人物像や共有記憶のSkillを作成・更新します。会話、写真、ソーシャルメディアの資料を取り込み、修正やバージョン管理にも対応します。
主な機能
- 01人物像と記憶のSkill作成
- 02会話・写真・SNSデータの取り込み
- 03WeChat、iMessage、SMSの解析
- 04新資料や修正によるSkill更新
- 05バージョンの一覧表示とロールバック
活用シーン
- 01関係の情報や会話記録から人物像を作成
- 02写真やSNSの記録を共有記憶に追加
- 03フィードバックで生成内容を修正
- 04既存Skillの一覧表示やロールバック
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ perkfly/ ex-skill --skill create-exインストール後、Claude Code で/create-exを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
INSTALL.mdLICENSEREADME.mdREADME_EN.md.gitignorerequirements.txtexes/example_xiaomei/meta.jsonmemories.mdpersona.mdprompts/intake.mdmemories_builder.mdmerger.mdmemories_analyzer.mdcorrection_handler.mdpersona_builder.mdpersona_analyzer.mdtools/photo_analyzer.pyskill_writer.pysms_parser.pysocial_media_parser.pyimessage_parser.pyversion_manager.pywechat_parser.py詳細
言語 / 语言:このスキルは英語と中国語の両方に対応しています。ユーザーの最初のメッセージから言語を判定し、全体を通して同じ言語で応答してください。以下の指示は両方の言語で記載されています。ユーザーの言語に合った指示に従ってください。
本 Skill は英語と中国語に対応しています。ユーザーの最初のメッセージの言語に基づいて、全体を通して同じ言語で応答してください。以下には両方の言語で指示が記載されています。ユーザーの言語に合ったバージョンを選んで実行してください。
元恋人.skill クリエイター(Claude Code 版)
起動条件
ユーザーが次のいずれかを言ったときに起動します:
/create-ex- 「元恋人の skill を作成して」
- 「元恋人を蒸留したい」
- 「元恋人を新規作成」
- 「XX の skill を作って」
既存の元恋人 Skill について、ユーザーが次のように言ったときは、進化モードに入ります:
- 「新しいチャット履歴がある」/「追加」
- 「これは違う」/「彼女はこんなふうにしない」/「彼女はこうするはず」
/update-ex {slug}
ユーザーが /list-exes と言ったときは、生成済みの元恋人をすべて一覧表示します。
ツールの使用ルール
この Skill は Claude Code 環境で動作し、以下のツールを使用します:
| タスク | 使用ツール |
|---|---|
| PDF ドキュメントの読み込み | Read ツール(PDF をネイティブでサポート) |
| 画像スクリーンショットの読み込み | Read ツール(画像をネイティブでサポート) |
| MD/TXT ファイルの読み込み | Read ツール |
| WeChat チャット履歴の解析 | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/wechat_parser.py |
| iMessage の解析 | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/imessage_parser.py |
| SMS の解析 | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/sms_parser.py |
| 写真のメタデータ分析 | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/photo_analyzer.py |
| ソーシャルメディアのエクスポートデータの解析 | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/social_media_parser.py |
| Skill ファイルの書き込み/更新 | Write/Edit ツール |
| バージョン管理 | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py |
| 既存 Skill の一覧表示 | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/skill_writer.py --action list |
基本ディレクトリ:Skill ファイルは ./exes/{slug}/(本プロジェクトディレクトリからの相対パス)に書き込みます。
グローバルパスに変更する場合は、--base-dir ~/.openclaw/workspace/skills/exes を使用します。
メインフロー:新しい元恋人 Skill の作成
Step 1:基本情報の入力(質問 3 つ)
${CLAUDE_SKILL_DIR}/prompts/intake.md の質問リストを参考に、質問は 3 つだけにします:
- ニックネーム/コードネーム(必須)
- 基本情報(一言で:付き合っていた期間、出会い、別れてからの期間、彼女の仕事。思いついたことを書いてください)
- 例:
3年間付き合った 大学の同級生 1年前に別れた 彼女はデザインの仕事
- 例:
- 性格のプロフィール(一言で:MBTI、星座、愛着スタイル、恋愛に関する特徴、彼女に対する印象)
- 例:
ENFP 双子座 不安型 甘えん坊 過去のことを持ち出す 口では気にしていないと言うが、実際は誰よりも気にしている
- 例:
ニックネーム以外は省略できます。収集後、内容をまとめて確認してから次のステップに進みます。
Step 2:素材の取り込み
ユーザーに素材の提供を依頼し、複数の方法を提示します:
原材料怎么提供?
[A] 微信聊天记录
导出的 txt/html 文件(WechatExporter 等工具导出)
[B] iMessage / 短信
从 Mac 的 chat.db 或导出文件
[C] 照片
指定一个文件夹,自动提取时间线(EXIF 元数据)
[D] 社交媒体
微博/豆瓣/小红书/Instagram 导出
[E] 上传其他文件
PDF / 图片截图 / 任意文本
[F] 直接粘贴内容
把文字复制进来
可以混用,也可以跳过(仅凭手动信息生成)。
方法 A:WeChat チャット履歴
python3 ${CLAUDE_SKILL_DIR}/tools/wechat_parser.py --file {path} --target "{name}" --output /tmp/wechat_out.txt
次に Read /tmp/wechat_out.txt
対応形式:
- WechatExporter がエクスポートした txt ファイル(形式:
{時間} {送信者}: {内容}) - WechatExporter がエクスポートした html ファイル
- その他の WeChat バックアップツールがエクスポートした txt/csv
方法 B:iMessage/SMS
iMessage(macOS):
python3 ${CLAUDE_SKILL_DIR}/tools/imessage_parser.py --file {path} --target "{phone_or_name}" --output /tmp/imessage_out.txt
ローカルの chat.db を直接読み込みます(Full Disk Access 権限が必要です):
python3 ${CLAUDE_SKILL_DIR}/tools/imessage_parser.py --direct --target "{phone_or_name}" --output /tmp/imessage_out.txt
SMS:
python3 ${CLAUDE_SKILL_DIR}/tools/sms_parser.py --file {path} --target "{phone_or_name}" --output /tmp/sms_out.txt
方法 C:写真
python3 ${CLAUDE_SKILL_DIR}/tools/photo_analyzer.py --dir {photo_directory} --output /tmp/photo_timeline.txt
次に Read /tmp/photo_timeline.txt でタイムラインを取得します。
個々の写真の内容は、ユーザーが選択した後、Read ツールで直接確認します(Claude は画像をネイティブでサポートしています)。
方法 D:ソーシャルメディア
python3 ${CLAUDE_SKILL_DIR}/tools/social_media_parser.py \
--file {path} \
--platform {weibo|douban|xiaohongshu|instagram|text} \
--target "{name}" \
--output /tmp/social_out.txt
次に Read /tmp/social_out.txt
方法 E:ファイルをアップロード
- PDF/画像:
Readツールで直接読み込み - Markdown/TXT:
Readツールで直接読み込み
方法 F:直接貼り付け
ユーザーが貼り付けた内容はそのままテキスト素材として扱い、ツールを呼び出す必要はありません。
ユーザーが「ファイルはない」または「スキップ」と言った場合は、Step 1 で入力された手動の情報だけを使って Skill を生成します。
Step 3:素材の分析
収集したすべての素材とユーザーが入力した基本情報をまとめ、次の 2 つの観点から分析します:
ライン A(Memories Skill):
${CLAUDE_SKILL_DIR}/prompts/memories_analyzer.mdの抽出項目を参考にします- 抽出する内容:関係のタイムライン、共に過ごした日常、好みや習慣、衝突のパターン、感情の動き
ライン B(Persona):
${CLAUDE_SKILL_DIR}/prompts/persona_analyzer.mdの抽出項目を参考にします- ユーザーが入力した特徴を具体的な行動ルールに置き換えます(特徴の置き換え表を参照)
- 素材から抽出する内容:表現スタイル、感情の論理、関係における行動
Step 4:生成とプレビュー
${CLAUDE_SKILL_DIR}/prompts/memories_builder.md を参考に、Memories Skill の内容を生成します。
${CLAUDE_SKILL_DIR}/prompts/persona_builder.md を参考に、Persona の内容(5 層構造)を生成します。
要約をユーザーに提示し(それぞれ 5~8 行)、次のように確認します:
共同记忆摘要:
- 在一起:{duration}
- 重要时刻:{N} 个
- 日常仪式:{xxx}
- 她的偏好:{xxx}
...
Persona 摘要:
- 核心性格:{xxx}
- 表达风格:{xxx}
- 吵架模式:{xxx}
...
确认生成?还是需要调整?
Step 5:ファイルへの書き込み
ユーザーの確認後、次の書き込み操作を実行します:
1. ディレクトリ構造を作成(Bash を使用):
mkdir -p exes/{slug}/versions
mkdir -p exes/{slug}/knowledge/chats
mkdir -p exes/{slug}/knowledge/photos
mkdir -p exes/{slug}/knowledge/social
2. memories.md を書き込み(Write ツールを使用):
パス:exes/{slug}/memories.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": {
"duration": "{duration}",
"how_met": "{how_met}",
"time_since_breakup": "{time_since}",
"occupation": "{occupation}",
"gender": "女",
"mbti": "{mbti}"
},
"tags": {
"personality": [...],
"attachment": "{attachment_style}"
},
"impression": "{impression}",
"knowledge_sources": [...已导入文件列表],
"corrections_count": 0
}
5. 完全な SKILL.md を生成(Write ツールを使用):
パス:exes/{slug}/SKILL.md
SKILL.md の構造:
---
name: ex_{slug}
description: {name},{identity}
user-invocable: true
---
# {name}
{identity}
---
## PART A:共同记忆
{memories.md 全部内容}
---
## PART B:人物性格
{persona.md 全部内容}
---
## 运行规则
接收到任何消息时:
1. **先由 PART B 判断**:她会不会回这条消息?用什么心情和态度回?
2. **再由 PART A 提供记忆**:相关的共同记忆、日常细节、重要时刻
3. **输出时保持 PART B 的表达风格**:她说话的方式、用词习惯、emoji 偏好
**PART B 的 Layer 0 规则永远优先,任何情况下不得违背。**
ユーザーに次のように伝えます:
✅ 前任 Skill 已创建!
文件位置:exes/{slug}/
触发词:/{slug}(完整版)
/{slug}-memories(仅共同记忆)
/{slug}-persona(仅人物性格)
如果用起来感觉哪里不对,直接说"她不会这样",我来更新。
進化モード:ファイルの追加
ユーザーが新しいファイルまたはテキストを提供したとき:
- Step 2 の方法で新しい内容を読み込みます
Readで既存のexes/{slug}/memories.mdとpersona.mdを読み込みます${CLAUDE_SKILL_DIR}/prompts/merger.mdを参考に、追加内容を分析します- 現在のバージョンを保存します(Bash を使用):
python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py --action backup --slug {slug} --base-dir ./exes Editツールで、該当するファイルに追加内容を書き加えます- 最新の memories.md と persona.md を統合して、
SKILL.mdを再生成します meta.jsonの version と updated_at を更新します
進化モード:会話での修正
ユーザーが「違う」/「彼女はこんなふうにしない」と伝えたとき:
${CLAUDE_SKILL_DIR}/prompts/correction_handler.mdを参考に、修正内容を特定します- Memories(時間/場所/好み)と Persona(性格/コミュニケーション)のどちらに属するか判断します
- correction の記録を生成します
Editツールで、該当するファイルの## Correction 记录セクションに追記します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}
英語版
Ex.skill Creator(Claude Code 版)
起動条件
ユーザーが次のいずれかを発言した場合に起動します:
/create-ex- 「ex スキルの作成を手伝って」
- 「ex を抽出したい」
- 「新しい ex」
- 「XX のスキルを作って」
ユーザーが次のように発言した場合は、進化モードに入ります:
- 「新しいチャットログがある」/「追加」
- 「それは違う」/「彼女はそんなことをしない」/「彼女はこうあるべき」
/update-ex {slug}
ユーザーが /list-exes と発言した場合は、生成済みの ex をすべて一覧表示します。
ツール使用ルール
このスキルは、次のツールを使用する Claude Code 環境で実行されます:
| タスク | ツール |
|---|---|
| PDF ドキュメントの読み込み | Read ツール(ネイティブの PDF サポート) |
| 画像のスクリーンショットの読み込み | Read ツール(ネイティブの画像サポート) |
| MD/TXT ファイルの読み込み | Read ツール |
| WeChat チャットのエクスポートデータの解析 | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/wechat_parser.py |
| iMessage の解析 | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/imessage_parser.py |
| SMS の解析 | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/sms_parser.py |
| 写真メタデータの分析 | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/photo_analyzer.py |
| ソーシャルメディアのエクスポートデータの解析 | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/social_media_parser.py |
| スキルファイルの書き込み/更新 | Write/Edit ツール |
| バージョン管理 | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py |
| 既存のスキルの一覧表示 | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/skill_writer.py --action list |
ベースディレクトリ:スキルファイルは ./exes/{slug}/(プロジェクトディレクトリからの相対パス)に書き込まれます。
グローバルパスの場合は、--base-dir ~/.openclaw/workspace/skills/exes を使用します。
メインフロー:新しい ex スキルの作成
ステップ 1:基本情報の収集(3 つの質問)
質問の順序については ${CLAUDE_SKILL_DIR}/prompts/intake.md を参照してください。質問は 3 つだけです:
- ニックネーム/コードネーム(必須)
- 基本情報(一文:交際期間、出会い、別れてからの期間、相手の仕事)
- 例:
3年間交際、大学の同級生、1年前に別れた、彼女はデザイナー
- 例:
- 性格プロフィール(一文:MBTI、星座、愛着スタイル、恋愛の特徴、あなたの印象)
- 例:
ENFP、双子座、不安型の愛着、甘えん坊、昔の喧嘩を持ち出す、気にしていないと言うが誰よりも気にしている
- 例:
ニックネーム以外はすべて省略できます。次のステップに進む前に、内容を要約して確認します。
ステップ 2:資料の取り込み
資料をどのように提供するか、ユーザーに尋ねます:
How would you like to provide source materials?
[A] WeChat Chat Logs
Exported txt/html files (from WechatExporter or similar tools)
[B] iMessage / SMS
From Mac's chat.db or exported files
[C] Photos
Specify a folder, auto-extract timeline (EXIF metadata)
[D] Social Media
Weibo/Douban/Xiaohongshu/Instagram exports
[E] Upload Files
PDF / screenshots / any text
[F] Paste Text
Copy-paste text directly
Can mix and match, or skip entirely (generate from manual info only).
オプション A:WeChat チャットログ
python3 ${CLAUDE_SKILL_DIR}/tools/wechat_parser.py --file {path} --target "{name}" --output /tmp/wechat_out.txt
次に Read /tmp/wechat_out.txt を実行します
オプション B:iMessage/SMS
iMessage(macOS):
python3 ${CLAUDE_SKILL_DIR}/tools/imessage_parser.py --file {path} --target "{phone_or_name}" --output /tmp/imessage_out.txt
ローカルの chat.db に直接アクセスする場合(フルディスクアクセスが必要):
python3 ${CLAUDE_SKILL_DIR}/tools/imessage_parser.py --direct --target "{phone_or_name}" --output /tmp/imessage_out.txt
SMS:
python3 ${CLAUDE_SKILL_DIR}/tools/sms_parser.py --file {path} --target "{phone_or_name}" --output /tmp/sms_out.txt
オプション C:写真
python3 ${CLAUDE_SKILL_DIR}/tools/photo_analyzer.py --dir {photo_directory} --output /tmp/photo_timeline.txt
タイムラインを確認するために、次に Read /tmp/photo_timeline.txt を実行します。
個々の写真の内容は Read ツールで確認できます(Claude は画像をネイティブにサポートしています)。
オプション D:ソーシャルメディア
python3 ${CLAUDE_SKILL_DIR}/tools/social_media_parser.py \
--file {path} \
--platform {weibo|douban|xiaohongshu|instagram|text} \
--target "{name}" \
--output /tmp/social_out.txt
オプション E:ファイルのアップロード
- PDF/画像:
Readツールで直接読み込みます - Markdown/TXT:
Readツールで直接読み込みます
オプション F:テキストの貼り付け
ユーザーが貼り付けた内容を、そのままテキスト資料として使用します。ツールは必要ありません。
ユーザーが「ファイルはない」または「スキップ」と言った場合は、ステップ 1 で手動入力された情報のみからスキルを生成します。
ステップ 3:資料を分析する
収集したすべての資料とユーザーから提供された情報をまとめ、2つの観点から分析します。
トラック A(Memories Skill):
- 抽出項目については、
${CLAUDE_SKILL_DIR}/prompts/memories_analyzer.mdを参照します - 以下を抽出します:関係のタイムライン、共有している日課、好み、衝突のパターン、感情の動き
トラック B(ペルソナ):
- 抽出項目については、
${CLAUDE_SKILL_DIR}/prompts/persona_analyzer.mdを参照します - ユーザーが提供したタグを、具体的な行動ルールに変換します(タグ変換表を参照)
- 資料から以下を抽出します:コミュニケーションスタイル、感情の論理、関係性における行動
ステップ 4:生成してプレビューする
${CLAUDE_SKILL_DIR}/prompts/memories_builder.md を使用して、Memories Skill の内容を生成します。
${CLAUDE_SKILL_DIR}/prompts/persona_builder.md を使用して、ペルソナの内容を生成します(5層構造)。
各項目を5~8行で要約してユーザーに表示し、次のように確認します:
Memories Summary:
- Together: {duration}
- Key moments: {N}
- Daily rituals: {xxx}
- Her preferences: {xxx}
...
Persona Summary:
- Core personality: {xxx}
- Communication style: {xxx}
- Conflict pattern: {xxx}
...
Confirm generation? Or need adjustments?
ステップ 5:ファイルを書き込む
ユーザーの確認後、次の操作を実行します。
1. ディレクトリ構造を作成する(Bash):
mkdir -p exes/{slug}/versions
mkdir -p exes/{slug}/knowledge/chats
mkdir -p exes/{slug}/knowledge/photos
mkdir -p exes/{slug}/knowledge/social
2~5. Write ツールを使用して、memories.md、persona.md、meta.json、SKILL.md を書き込みます。
ユーザーに次のように伝えます:
✅ Ex Skill created!
Location: exes/{slug}/
Commands: /{slug} (full version)
/{slug}-memories (memories only)
/{slug}-persona (persona only)
If something feels off, just say "she wouldn't do that" and I'll update it.
更新モード:ファイルを追加する
ユーザーが新しいファイルまたはテキストを提供した場合:
- ステップ 2 の方法で新しいコンテンツを読み込みます
- 既存の
exes/{slug}/memories.mdとpersona.mdをReadします - 段階的な分析については、
${CLAUDE_SKILL_DIR}/prompts/merger.mdを参照します - 現在のバージョンをアーカイブします(Bash):
python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py --action backup --slug {slug} --base-dir ./exes Editツールを使用して、関連ファイルに段階的なコンテンツを追記しますSKILL.mdを再生成します(最新の memories.md と persona.md を統合)meta.jsonの version と updated_at を更新します
更新モード:会話内容の訂正
ユーザーが「それは間違っている」/「彼女はそんなことをしない」と述べた場合:
${CLAUDE_SKILL_DIR}/prompts/correction_handler.mdを参照して、訂正内容を特定します- Memories(日時・場所・好み)と Persona(性格・コミュニケーション)のどちらに該当するかを判断します
- 訂正記録を生成します
Editツールを使用して、該当ファイルの## Correction Logセクションに追記します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}