st-personalisted
Install: claude install-skill haingt-dev/agent
# ST Persona — Character → Persona Migration
Hai's flow: import char from Chub/Janitor → find interesting → decide "this is my persona" → convert.
ST has no built-in equivalent for `char_prompts` on the persona side, so visual baseline must move INTO `persona_description` text (LLM extracts during Mode 4). This skill automates the migration.
**Usage:**
```
/st-persona Parasite # convert, KEEP original char file (default safe)
/st-persona Parasite --remove # convert AND delete original char file
```
## Constants
```
ST_DATA = /home/haint/Projects/home-server/sillytavern/data/default-user
ST_SCRIPTS = /home/haint/Projects/home-server/scripts
```
---
## Phase 0: Parse + Validate
Extract from `$ARGUMENTS`:
- `CharName` = first non-flag token
- `remove_original` = `--remove` flag present
Validate:
- `$ST_DATA/characters/{CharName}.png` must exist (source character)
- `$ST_DATA/User Avatars/{CharName} (Persona).png` must NOT exist — if it does, ask user: overwrite, rename, or abort?
---
## Phase 1: Gather Source Data
**Read existing char_prompts via MCP** (path-based, may be empty/missing if /st-setup not yet run):
```python
import json
try:
char_visual_pos = json.loads(mcp__st__st_get_settings(path=f"extension_settings.sd.character_prompts.{CharName}"))
except Exception:
char_visual_pos = '' # key absent
try:
char_visual_neg = json.loads(mcp__st__st_get_settings(path=f"extension_settings.sd.character_negative_prompts.{CharName}"))
except Exce