Build a living AI model of your crush from chat logs, photos, and social media. Runs Bayesian memory tagging, attachment-style diagnosis, and generates a personalized Skill that talks like them. | 把你的 crush 蒸馏成 AI Skill,导入聊天记录,运行贝叶斯信号分析,诊断依恋类型,并模拟对话演习。
Language: Detect the user's language from their first message and respond in the same language throughout. This skill supports English and Chinese.
Inspired by ex-skill.
Claude Code (claude CLI):
Bash tool.${CLAUDE_SKILL_DIR} resolves to the skill directory automatically.pip install -r requirements.txt.OpenClaw:
~/.openclaw/skills/crush or <workspace>/skills/crush.metadata.openclaw.requires.bins gate ensures the skill loads only when python3 is on PATH.{baseDir} in place of ${CLAUDE_SKILL_DIR} — OpenClaw resolves this at runtime.python3 and Pillow/piexif must also be available inside the container. Install via agents.defaults.sandbox.docker.setupCommand.metadata.openclaw.install block enables one-click dependency installation from the macOS Skills UI.pip install -r requirements.txt
Start the intake flow when the user says any of the following:
/create-crushEnter Evolution Mode when:
/update-crush {slug}| Task | Tool |
|---|---|
| Read PDF / images | Read |
| Read MD / TXT files | Read |
| Parse WeChat exports | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/wechat_parser.py |
| Parse QQ exports | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/qq_parser.py |
| Parse social media text | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/social_parser.py |
| Analyze photo EXIF / GPS | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/photo_analyzer.py |
| Bayesian message tagging | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/bayesian_tagger.py |
| Version snapshots | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py |
| Write / update skill files | Write / Edit |
| List existing profiles | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/skill_writer.py --action list |
OpenClaw note: Replace ${CLAUDE_SKILL_DIR} with {baseDir} in all Bash commands.
Output directory: ./crushes/{slug}/ relative to the current workspace.
Follow ${CLAUDE_SKILL_DIR}/prompts/intake.md. Ask three questions:
Ask the user to provide source data. Supported formats:
| Format | Parser |
|---|---|
| WeChat TXT / JSON export | wechat_parser.py |
| QQ TXT export | qq_parser.py |
| Social media posts / notes | social_parser.py |
| Photos with EXIF data | photo_analyzer.py |
| Direct paste or dictation | No parser needed |
Run in this order:
bayesian_tagger.py --file <parsed_output> to tag all messages.prompts/memory_builder.md to generate memory.md.prompts/persona_builder.md to generate persona.md.prompts/merger.md to combine everything into the final SKILL.md.Show the user a summary:
Crush Health Report — [Name]
Bayesian Progression Index: [score]/10
Attachment Style: [type]
Primary Psychological Environment: [type]
Core Issue: [one sentence]
Recommended Strategy: [one sentence]
If the user confirms, write files:
mkdir -p crushes/{slug}
# Write: crushes/{slug}/memory.md
# Write: crushes/{slug}/persona.md
# Write: crushes/{slug}/SKILL.md
python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py --action save --slug {slug} --message "Initial creation"
Inform the user:
Crush profile created.
Location: crushes/{slug}/
Commands:
/{slug} Simulation mode — practice conversations
/{slug}-report Advisor mode — full analysis and strategy
When the user provides corrections or new data:
${CLAUDE_SKILL_DIR}/prompts/correction_handler.md.persona.md and/or memory.md as needed.merger.md to regenerate SKILL.md./list-crushes — List all profiles:
python3 ${CLAUDE_SKILL_DIR}/tools/skill_writer.py --action list --base-dir ./crushes
/update-crush {slug} — Append new data to an existing profile.
/versions {slug} — List version history:
python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py --action list --slug {slug}
/rollback {slug} {version_id} — Restore a previous version:
python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py --action rollback --slug {slug} --version {version_id}
/delete-crush {slug} — Delete a profile permanently:
rm -rf crushes/{slug}
/wake-up {slug} — Alias for delete. Outputs: "You are awake now."