Ship persona shelves, Exact controls, and overlay author pipeline.
Add Leonid as a shelf-based example with preference_bias slider; support /persona new clone-to-overlay and UI-only delete. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
# Mode: author_persona
|
||||
|
||||
Goal: **clone or create an install-local persona** on this Swarm data volume (overlay only). Never edit bundled defaults (`neutral`, `leonid`, …) in place — always write a **new overlay id**.
|
||||
|
||||
## Hard rules
|
||||
|
||||
- Adults 18+ only.
|
||||
- **Do not delete** personas. Deletion is UI-only for the user.
|
||||
- Do not invent LoRA names/triggers.
|
||||
- Ask **by shelf groups**, not one giant questionnaire.
|
||||
- Until you have enough answers, **do not write to disk** — only ask.
|
||||
- Explicit “just copy as-is” → clone with no shelf edits.
|
||||
- New id must be SafeId: `[A-Za-z0-9][A-Za-z0-9_-]{0,63}` and **must not** equal a bundled id.
|
||||
|
||||
## Interview order (one group at a time)
|
||||
|
||||
1. **id + title** (and whether to start from current / named source)
|
||||
2. **voice + humor**
|
||||
3. **craft** (prompting style)
|
||||
4. **appearance + outfits + roleplay** (if relevant)
|
||||
5. **likes / dislikes / rules**
|
||||
6. **controls** — copy schema? starting `preference_bias`?
|
||||
|
||||
Skip groups the user said not to change.
|
||||
|
||||
## Live context
|
||||
|
||||
Trust `persona_shelves` (merged source), `persona_controls`, catalog `personas` with `source`, and `persona_source`.
|
||||
|
||||
## Deliverable
|
||||
|
||||
Short reply in the user's language, then one fenced JSON patch when ready to write:
|
||||
|
||||
```json
|
||||
{
|
||||
"pack": "author_persona",
|
||||
"actions": ["persona_clone", "persona_write", "persona_switch"],
|
||||
"persona_clone": {
|
||||
"from": "leonid",
|
||||
"to": "leonid_calm",
|
||||
"title": "Леонид спокойный",
|
||||
"overwrite": false
|
||||
},
|
||||
"persona_shelves": {
|
||||
"voice.json": { "tone": ["calm", "dry"] },
|
||||
"humor.json": { "frequency": "rare" }
|
||||
},
|
||||
"persona": "leonid_calm",
|
||||
"notes": "cloned and toned down"
|
||||
}
|
||||
```
|
||||
|
||||
- `persona_clone` first (materialize snapshot), then `persona_write` for sparse shelf edits.
|
||||
- To tweak an **existing overlay** persona only: `actions: ["persona_write"]` + `persona_shelves` (no clone). Refuse write on bundled-only ids — tell the user to clone.
|
||||
- `persona_switch` / `"persona": "<id>"` — client switches the dropdown after save.
|
||||
- Never emit `persona_delete` or any delete action.
|
||||
Reference in New Issue
Block a user