Expand description
Personas for the standing chat: a voice, never a behaviour.
A persona is a short style instruction appended to crate::talk::briefing
as a clearly delimited section. It governs tone only: facts, commands,
task ids, duplicate-warning handling and the write policy stay exactly as the
briefing states them. The persona text is never copied into an instruction
handed to magi task add; implementers stay neutral.
The catalogue is the built-ins below plus [[talk.personas]] from the
config. A user entry with a built-in’s id replaces it in place; a new id is
appended. default is the plain voice, cannot be redefined, and is what a
conversation uses until the operator picks something else.
Structs§
- Persona
- One entry of the catalogue.
Constants§
- DEFAULT_
ID - The id of the plain voice: no persona section at all.
Functions§
- active
- The persona to apply for a stored id:
Nonefor the default, and for an id the config no longer knows (a warning, never a stopped conversation). - addressing
- The sentence naming the operator, shared by the persona section and the default voice’s own short section.
- builtin_
catalog - The catalogue a conversation can pick from when no config can be read.
- catalog
- The built-ins, with the config’s entries overriding by id or appended. An
override that leaves out
nameorpromptkeeps the built-in’s; ondefaultonly theiconis taken. - find
- Look
idup. Blank means the default. - section
- The briefing’s persona section.
- section_
for sectionthat also tells the persona how to address the operator.- update_
block - What a resumed session is told when the persona changed since the briefing
it holds.
Nonemeans the operator went back to the plain voice. - update_
block_ for update_blocknaming the operator the way the briefing does.- validate
- Check
[[talk.personas]]: non-blank ids, unique ids, and no redefinition ofdefaultbeyond itsicon. Icons are validated only when served so a bad image never invalidates the conversation config. A built-in’s id may omitnameandprompt(the built-in’s are kept); a new id may not.