10 trait modifiers targeting distinct speech dimensions (delivery force, word selection, sentence shape, framing, cadence, volume, texture, position) so they stack without conflict. Used by prompt_builder.rs to modify NPC speech style based on personality traits. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
49 lines
2.9 KiB
Plaintext
49 lines
2.9 KiB
Plaintext
// Trait Modifier Clauses for Voice Pipeline (D-138)
|
|
//
|
|
// One clause per PersonalityTrait. Injected into LLM prompts to modify
|
|
// speech style based on NPC personality. Stacks with culture persona
|
|
// and tell-state injectors.
|
|
//
|
|
// Schema: map of trait name → clause string
|
|
// Used by: server/src/voice/prompt_builder.rs
|
|
//
|
|
// Writing notes:
|
|
// - Behavioral, not emotional. Never label a feeling.
|
|
// - Each clause targets a distinct speech dimension so traits stack cleanly.
|
|
// Bold = delivery force. Cautious = word selection. Curious = sentence shape.
|
|
// etc. A Bold+Guarded NPC speaks with force but picks words carefully — no conflict.
|
|
// - Kept to 1-2 sentences. LLM context is limited and these share space with
|
|
// persona, tell-state, and epistemic marker instructions.
|
|
|
|
{
|
|
// Delivery: force and directness. Short sentences land without hedging.
|
|
"Bold": "This character doesn't soften the landing. Statements arrive short and flat — no qualifiers, no trailing uncertainty.",
|
|
|
|
// Word selection: nothing committed without cover. Hedges stay.
|
|
"Cautious": "This character hedges where the situation allows it. \"Probably,\" \"might,\" \"I'd say\" — these aren't weakness, they're habit.",
|
|
|
|
// Sentence shape: questions surface. Interest pulls the line open.
|
|
"Curious": "This character lets interest show at the end of a line — a beat longer than needed, a question that wasn't required.",
|
|
|
|
// Framing: the useful version, not the true version. Nothing false, just selected.
|
|
"Deceptive": "This character leads with what serves them. The useful detail arrives early; the less useful one doesn't arrive at all.",
|
|
|
|
// Framing: no softening, no omission. The whole thing, bluntly.
|
|
"Honest": "This character gives the whole answer, including the part that doesn't reflect well. Nothing is softened to spare anyone.",
|
|
|
|
// Cadence: fast entry, no ramp-up. The response is already in motion.
|
|
"Impulsive": "This character starts talking before the thought is finished. The sentence catches up to itself mid-way.",
|
|
|
|
// Cadence: deliberate pacing. Sequence matters. One thing before the next.
|
|
"Methodical": "This character takes things in order. Sentences build, one piece at a time, and don't arrive at the point before the steps do.",
|
|
|
|
// Volume and reach: minimal, inward-facing. Not interested in being heard widely.
|
|
"Reclusive": "This character answers what was asked and closes the door. There is no invitation for follow-up.",
|
|
|
|
// Texture: open, inclusive. Others are assumed to be present and welcome.
|
|
"Social": "This character addresses the conversation, not just the question. A word or two lands that wasn't strictly necessary — the kind that keeps things warm.",
|
|
|
|
// Position: established, not revisable. Sentences don't open up once they're out.
|
|
"Stubborn": "This character doesn't revise mid-sentence. What comes out is what they meant, and nothing in the delivery invites renegotiation.",
|
|
}
|