mcpField
C
create-ex

create-ex

github.com/perkflyエージェントワークフロー2.6k369 回インストール30 週間前に更新
リポジトリ

create-ex について

create-exは、Claude Code向けに元パートナーの人物像や共有記憶のSkillを作成・更新します。会話、写真、ソーシャルメディアの資料を取り込み、修正やバージョン管理にも対応します。

主な機能

  1. 01人物像と記憶のSkill作成
  2. 02会話・写真・SNSデータの取り込み
  3. 03WeChat、iMessage、SMSの解析
  4. 04新資料や修正によるSkill更新
  5. 05バージョンの一覧表示とロールバック

活用シーン

  1. 01関係の情報や会話記録から人物像を作成
  2. 02写真やSNSの記録を共有記憶に追加
  3. 03フィードバックで生成内容を修正
  4. 04既存Skillの一覧表示やロールバック

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/create-exを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

INSTALL.md
LICENSE
README.md
README_EN.md
.gitignore
requirements.txt
exes/example_xiaomei/
meta.json
memories.md
persona.md
prompts/
intake.md
memories_builder.md
merger.md
memories_analyzer.md
correction_handler.md
persona_builder.md
persona_analyzer.md
tools/
photo_analyzer.py
skill_writer.py
sms_parser.py
social_media_parser.py
imessage_parser.py
version_manager.py
wechat_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 つだけにします:

  1. ニックネーム/コードネーム(必須)
  2. 基本情報(一言で:付き合っていた期間、出会い、別れてからの期間、彼女の仕事。思いついたことを書いてください)
    • 例:3年間付き合った 大学の同級生 1年前に別れた 彼女はデザインの仕事
  3. 性格のプロフィール(一言で: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(仅人物性格)

如果用起来感觉哪里不对,直接说"她不会这样",我来更新。

進化モード:ファイルの追加

ユーザーが新しいファイルまたはテキストを提供したとき:

  1. Step 2 の方法で新しい内容を読み込みます
  2. Read で既存の exes/{slug}/memories.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. 最新の memories.md と persona.md を統合して、SKILL.md を再生成します
  7. meta.json の version と updated_at を更新します

進化モード:会話での修正

ユーザーが「違う」/「彼女はこんなふうにしない」と伝えたとき:

  1. ${CLAUDE_SKILL_DIR}/prompts/correction_handler.md を参考に、修正内容を特定します
  2. Memories(時間/場所/好み)と 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}


英語版

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 つだけです:

  1. ニックネーム/コードネーム(必須)
  2. 基本情報(一文:交際期間、出会い、別れてからの期間、相手の仕事)
    • 例:3年間交際、大学の同級生、1年前に別れた、彼女はデザイナー
  3. 性格プロフィール(一文: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.

更新モード:ファイルを追加する

ユーザーが新しいファイルまたはテキストを提供した場合:

  1. ステップ 2 の方法で新しいコンテンツを読み込みます
  2. 既存の exes/{slug}/memories.md と persona.md を Read します
  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 を再生成します(最新の memories.md と persona.md を統合)
  7. meta.json の version と updated_at を更新します

更新モード:会話内容の訂正

ユーザーが「それは間違っている」/「彼女はそんなことをしない」と述べた場合:

  1. ${CLAUDE_SKILL_DIR}/prompts/correction_handler.md を参照して、訂正内容を特定します
  2. Memories(日時・場所・好み)と Persona(性格・コミュニケーション)のどちらに該当するかを判断します
  3. 訂正記録を生成します
  4. Edit ツールを使用して、該当ファイルの ## Correction Log セクションに追記します
  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}

コメント