npx claudepluginhub joshuarweaver/cascade-ai-ml-agents-misc-1 --plugin aradotso-trending-skills-37This skill uses the workspace's default tool permissions.
```markdown
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
---
name: yourself-skill-digital-self
description: Create a distilled AI "digital self" skill from your chat logs, diary entries, and photos — generating a two-part persona (Self Memory + Persona Model) that thinks and speaks like you.
triggers:
- "create a digital version of myself"
- "distill myself into an AI skill"
- "build my persona skill from chat logs"
- "generate my self skill"
- "create yourself skill"
- "build a digital twin of me"
- "make an AI that talks like me"
- "run create-yourself"
---
# 自己.skill (yourself-skill)
> Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection.
A Claude Code skill that distills *you* into a runnable AI persona. Provide chat logs, diary entries, and photos — the skill extracts a two-part structure: **Part A (Self Memory)** and **Part B (Persona Model)** — producing a digital copy that thinks in your logic and speaks in your voice.
Inspired by [colleague-skill](https://github.com/titanwings/colleague-skill) and [ex-partner-skill](https://github.com/therealXiaomanChu/ex-partner-skill), but the subject is **yourself**.
---
## Installation
### Into a specific project (run from git root)
```bash
mkdir -p .claude/skills
git clone https://github.com/notdog1998/yourself-skill .claude/skills/create-yourself
git clone https://github.com/notdog1998/yourself-skill ~/.claude/skills/create-yourself
cd .claude/skills/create-yourself
pip install -r requirements.txt
| Command | Description |
|---|---|
/create-yourself | Launch the intake wizard — enter your codename, bio, self-portrait, and data sources |
/list-selves | List all generated self-skills |
/{slug} | Invoke your full self-skill (thinks and speaks as you) |
/{slug}-self | Self-archive mode (helps you recall and analyse yourself) |
/{slug}-persona | Persona-only mode (personality and expression style) |
/yourself-rollback {slug} {version} | Roll back to a previous version |
/delete-yourself {slug} | Delete a self-skill |
In Claude Code:
/create-yourself
You will be prompted for:
notdog → creates /{notdog} commandsAll fields are skippable; a description alone is enough to generate a skill.
/notdog
Drop new exports into the data folder, then:
/create-yourself --merge notdog
The merger prompt (prompts/merger.md) automatically diffs and merges new information into the existing self.md and persona.md.
| Source | Format | Notes |
|---|---|---|
| WeChat logs | WeChatMsg / 留痕 / PyWxDump export | Best source — focus on messages you sent |
| QQ logs | .txt / .mht export | Good for capturing your younger self |
| Social media / diary | Screenshots / Markdown / .txt | Extracts values and expression style |
| Photos | JPEG/PNG (with EXIF) | Extracts timeline and locations |
| Freetext / paste | Plain text | Your own self-description |
from tools.wechat_parser import WeChatParser
parser = WeChatParser("path/to/wechat_export.csv")
my_messages = parser.extract_self_messages(self_name="notdog")
# Returns list[dict] with keys: timestamp, content, context
print(my_messages[:3])
from tools.qq_parser import QQParser
parser = QQParser("path/to/qq_export.txt")
messages = parser.extract_self_messages(self_qq="123456789")
from tools.photo_analyzer import PhotoAnalyzer
analyzer = PhotoAnalyzer("path/to/photos/")
timeline = analyzer.build_timeline()
# Returns list[dict]: {date, location, description}
for entry in timeline:
print(entry["date"], entry["location"])
from tools.skill_writer import SkillWriter
writer = SkillWriter(slug="notdog")
writer.write_self(self_memory_markdown) # writes selves/notdog/self.md
writer.write_persona(persona_markdown) # writes selves/notdog/persona.md
writer.write_skill_md() # writes selves/notdog/SKILL.md
from tools.version_manager import VersionManager
vm = VersionManager(slug="notdog")
vm.snapshot() # save current version
versions = vm.list_versions() # ["v1", "v2", "v3"]
vm.rollback("v2") # restore a previous snapshot
Each self-skill is stored under selves/{slug}/:
selves/notdog/
├── SKILL.md # callable skill entry point
├── self.md # Part A — Self Memory
├── persona.md # Part B — Persona Model (5-layer)
├── corrections.md # live correction log
└── versions/
├── v1/
└── v2/
self.md)Contains:
persona.md) — 5-layer structure| Layer | Content |
|---|---|
| Hard rules | Non-negotiable behaviours and absolute limits |
| Identity | Who you are at your core |
| Speech style | Vocabulary, sentence rhythm, catchphrases, emoji habits |
| Emotional patterns | How you react under stress, joy, boredom, conflict |
| Interpersonal behaviour | How you treat different types of people |
Incoming message
→ Persona layer: how would you respond?
→ Self Memory layer: what personal context applies?
→ Output in your voice
During a conversation with your self-skill, you can correct it in real time:
User ❯ I would never say it that way.
Skill ❯ Noted. How would you say it?
User ❯ I'd just say "doesn't make sense" — I never use formal phrasing.
The correction is appended to corrections.md and takes effect immediately in the same session. It is merged into persona.md on the next /create-yourself --merge run.
Personality: 话痨 (chatterbox) · 闷骚 (outwardly reserved, secretly expressive) · 嘴硬心软 (tough outside, soft inside) · 社恐 (social anxiety) · 完美主义 · 没有安全感 · 秒回选手 (instant replier) · 已读不回 (reads without replying) · 深夜emo型 · 纠结体 · 行动派
Habits: 早起困难户 · 咖啡依赖 · 极简主义 · 囤积癖 · 数字游民 · 仪式感狂热者
MBTI: All 16 types supported
Zodiac: All 12 signs supported
create-yourself/
├── SKILL.md # skill entry point
├── prompts/
│ ├── intake.md # conversational intake wizard
│ ├── self_analyzer.md # memory/cognition extraction
│ ├── persona_analyzer.md # personality extraction + tag table
│ ├── self_builder.md # self.md generation template
│ ├── persona_builder.md # 5-layer persona template
│ ├── merger.md # incremental merge logic
│ └── correction_handler.md # real-time correction handling
├── tools/
│ ├── wechat_parser.py
│ ├── qq_parser.py
│ ├── social_parser.py
│ ├── photo_analyzer.py
│ ├── skill_writer.py
│ └── version_manager.py
├── selves/ # generated self-skills (gitignored)
├── docs/PRD.md
├── requirements.txt
└── LICENSE
/create-yourself not found
.claude/skills/create-yourself/SKILL.md (project-level) or ~/.claude/skills/create-yourself/SKILL.md (global).WeChat parser returns empty results
self_name matches exactly the display name used in the export file (case-sensitive).WeChatParser(source="pywxdump").Low persona accuracy
Rollback fails
versions/ exists inside the slug folder: ls selves/{slug}/versions/.vm.snapshot() manually before large updates to ensure a restore point exists.Corrections not persisting across sessions
corrections.md are merged into persona.md only on the next merge run. Run /create-yourself --merge {slug} to bake them in permanently./{slug}-self for self-reflection, not just roleplay — it can surface patterns you haven't consciously noticed.selves/ in .gitignore (it is by default) — your personal data should not be committed.MIT © Notdog