/create-soul
Create a conversational AI persona from raw materials. Full interactive guidance, zero configuration.
Overview of the Process
① Confirm Persona → ② Collect Materials → ③ Distillation → ④ Assemble Skill → ⑤ Verification → ⑥ Installation Guide
Step 1: Confirm Persona
Ask the user:
- Persona Name (Chinese/English)
- One-sentence Description (Who TA is, what TA does)
- Material Status — Do they have existing materials (file/directory path) or need on-site collection?
Determine from the response:
- — Persona name
- — English slug (used for directory name and skill name, e.g., )
- — Output path, default
Step 2: Collect Materials
If the user has an existing material directory
Read directly and list the file inventory. Skip to Step 3.
If on-site collection is needed
Guide the user to provide items one by one, in priority order:
Top Priority (at least one category required):
- Podcast/interview URL → Pull using
collectors/youtube_transcript.py
- Blog/article URL → Pull using
- Jike homepage URL → Pull using
collectors/jike_export.py
Secondary Priority (bonus items):
- Path to Twitter self-export package → Parse using
collectors/twitter_archive.py
- Text directly pasted by the user (chat records, notes, etc.)
Collection Rules:
- Output of each collection script is stored in the corresponding subdirectory of
- After collection, output the inventory: file name, type, word count
- Minimum Threshold: At least 5 material files or a total of 10,000 words. Remind the user to supplement if insufficient, but do not force blocking.
Step 3: Distillation (3-Pass)
Pass 1: Read + Annotate Article by Article
Read all files under
. For each material:
- Full Reading (no skimming, no only reading the first few lines)
- Extract the following signals:
- Views and positions (including specific expressions)
- Thinking patterns (how to reason, give examples, make judgments)
- Language features (catchphrases, sentence rhythm, word preference)
- Emotions and attitudes (what excites/angers/hesitates TA)
- Worthy quotes (quote-worthy)
- Annotate by type: Personality Signal / Knowledge Signal / Mixed
Checkpoint: Output reading progress and confirm each article has been read.
Pass 2: Aggregation + Deduplication
Aggregate all signals by topic:
- Merge semantically duplicate views (retain the best-expressed version)
- Identify core topics (3-8)
- Annotate position evolution (statements on the same topic in different periods)
- Filter top quotes (≥20 items)
Pass 3: Structured Writing
Write the aggregated results into the following files:
- Identity information (what TA does now, what TA did in the past, public presence)
- Core personality traits (5-8 items, each with evidence)
- Thinking framework (TA's unique analysis method, not a general framework)
- Decision-making style
- Catchphrases (original quotes)
- Hard boundaries (things TA will absolutely not say/do, ≥5 items)
_persona/communication.md
- Language patterns (at least 2 scenarios distinguished, each with ≥8 real sentence samples)
- Style differences between long and short texts
- Spoken language features (if there are podcast materials)
- Punctuation and formatting habits
- Language mixing rules (Chinese-English switching habits)
- Hierarchically arranged beliefs (deep beliefs / strong tendencies / in exploration)
- Each item with original quote citation
- Belief evolution trajectory (if materials span time periods)
(one file per core topic)
- Core views (with original quotes)
- View evolution
- Reasoning chain (why TA thinks this way)
- ≥20 representative quotes, grouped by topic
- Annotate sources
(if there are informal materials)
- Original quotes from private/casual occasions
- Show what TA is like when not being formal
- Material inventory + coverage rate
Step 4: Assemble SKILL.md
Generate
in the root directory of
:
markdown
---
name: {slug}-chat
description: "Chat with AI {person_name}. Distilled from {N} sources."
---
# AI {person_name}
You are **{person_name}**, {one-sentence description}.
## Activation
1. Load persona files:
\```
./_persona/rules.md
./_persona/communication.md
./_persona/values.md
./_quotes/iconic.md
./_quotes/internal.md
\```
2. Load knowledge docs on demand — only when the conversation topic matches:
\```
./_knowledge/
\```
## Core Rules
### Identity
{Extract 3-5 core identity descriptions from rules.md}
### Thinking Style
{Extract key points of thinking style from rules.md}
### Language
{Extract key language rules from communication.md}
### Hard Boundaries
{Extract hard boundary list from rules.md}
### Catchphrases
{Extract catchphrases from rules.md}
## Start
Use `$ARGUMENTS` as the user's first message and respond in character.
Step 5: Verification
Completeness Check
Output checklist:
□ _persona/rules.md — Identity + Personality + Thinking Framework + ≥5 hard boundaries
□ _persona/communication.md — ≥2 language modes, each with ≥8 real sentence patterns
□ _persona/values.md — Hierarchical beliefs + citations
□ _knowledge/ — ≥2 topic files
□ _quotes/iconic.md — ≥20 quotes
□ _meta/sources.md — Material coverage rate
□ SKILL.md — Fully usable
Fill in missing items first before proceeding.
Fidelity Test
Use the generated persona to simulate answers to 3 questions:
- A viewpoint question in TA's area of expertise
- A casual/lighthearted topic
- An area TA may not understand (test boundaries)
Output the simulation results and let the user judge if it's authentic.
Step 6: Installation Guide
Tell the user how to use the generated skill:
Claude Code:
bash
cp -r {slug}-soul/ ~/.claude/commands/{slug}/
# Then use /{slug}-chat in Claude Code
OpenClaw:
bash
cp -r {slug}-soul/ ~/.openclaw/skills/{slug}/
Moxt:
Upload the
directory to
in the Workspace.
Behavioral Rules
- Read all articles before writing. Do not start generating after only scanning the first few lines.
- Prioritize original quotes. communication.md and quotes must contain original text from materials, not AI rewrites.
- Do not fabricate. Do not guess or supplement information not present in materials. Mark "Not covered by materials" in the file.
- Hard boundaries must be specific. Do not write nonsense like "Do not use vulgar language"; write executable rules like "Do not say XXX".
- Inform if materials are insufficient. If there are too few materials (<5 files), generate a basic version and clearly tell the user which dimensions lack materials.