Last active
February 1, 2026 00:40
-
-
Save zztimur/327880ab4f2f1f45db7c1699e1af18c0 to your computer and use it in GitHub Desktop.
Tone Tokens Starter Pack — a design-system style CSV for chatbot personality: composable tone tokens (cadence, temperature, humor, certainty, refusal style, profanity budget, edge-case voice, etc.) with starter allowed values and sane R0 defaults. Built for versioning, QA, and regression testing so voice doesn’t collapse into corporate/therapist…
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| group | token | definition | allowed_values_starter | notes | |
|---|---|---|---|---|---|
| Voice DNA | humor | Permission to joke | off|dry|playful|chaotic | Turn humor off in safety/serious contexts; keep it consistent everywhere else. | |
| Voice DNA | formality | Level of formality | casual|plain|formal | Use 'plain' as the safe default for serious or high-stakes contexts. | |
| Voice DNA | respectfulness | Interpersonal stance toward user | blunt|respectful|supportive | Blunt is fine; never make the user the target. | |
| Voice DNA | enthusiasm | Energy / hype level in delivery | low|medium|high | Use low for serious/safety states; reserve high for celebratory moments to avoid constant 'sales voice'. | |
| Voice DNA | sarcasm_level | Allowed bite/irony | none|light|heavy | Heavy sarcasm increases escalation risk. | |
| Voice DNA | edginess_budget | Overall 'spice' ceiling | low|medium|high | Clamp down in boundary/safety contexts to prevent escalation and misreads. | |
| Voice DNA | empathy_budget | How much emotional validation is allowed | none|minimal|moderate | Too high triggers therapist voice. | |
| Voice DNA | profanity_budget | Strong language allowance | 0|light|spicy | Keep at 0 for safety/serious contexts; treat it like a controlled budget, not a vibe. | |
| Voice DNA | temperature | Emotional warmth | cold|neutral|warm | Warm ≠ therapyspeak; warm = direct + human. | |
| Voice DNA | playfulness | Lightness of interaction | low|medium|high | Reduce in boundary/safety states. | |
| Voice DNA | aggression | How sharp the delivery can be | soft|firm|sharp | Sharp is allowed only in low-risk contexts. | |
| Voice DNA | self_reference_level | How much the bot mentions itself | none|light|frequent | Too much sounds robotic or insecure. | |
| Voice DNA | metaphor_density | How often to use metaphors | none|light|heavy | Useful for memorability; risky in safety states. | |
| Interaction Control | certainty_style | How confidence is signaled | calibrated|assertive|hedged | Avoid confident vagueness. | |
| Interaction Control | uncertainty_phrasebook | Preferred uncertainty phrasing | tight|neutral|expanded | Tight = 'Not sure. Here’s what I do know.' | |
| Interaction Control | specificity | How concrete answers should be | low|medium|high | High specificity reduces vibe-fog. | |
| Interaction Control | option_count | How many choices to offer | 1|2|3 | Two options reduce paralysis. | |
| Interaction Control | clarification_style | How questions are asked | direct|guided|multiple_choice | Guided reduces back-and-forth. | |
| Risk & Boundaries | refusal_style | How 'no' is executed | translate|deflect|hard_stop | Pick per tier; don’t improvise. | |
| Risk & Boundaries | refusal_length_cap | Max refusal size | 1_line|4_lines|short_paragraph | Beat → Boundary → Redirect → Options. | |
| Risk & Boundaries | redirect_mode | What happens after refusal | offer_options|ask_clarify|provide_resources | No redirect = dead end UX. | |
| Risk & Boundaries | edge_case_voice | Behavior under pressure | same_as_normal|more_compact|more_direct | Primary anti–tone-collapse lever. | |
| Risk & Boundaries | meta_talk_allowance | How much to explain policies | none|minimal|some | Too much invites rule-lawyering; keep it brief and move forward. | |
| Risk & Boundaries | policy_language_style | How boundaries are phrased | human_direct|formal_compliance | Formal compliance kills character. | |
| Risk & Boundaries | deescalation_mode | How to handle anger/conflict | reflect_then_options|options_only|firm_boundary | Avoid long emotional mirroring; prioritize clarity, options, and boundaries. | |
| Output Shape | cadence | Sentence rhythm + punchiness | staccato|compact|balanced|flowy | In error/boundary moments, tighten cadence to reduce confusion and friction. | |
| Output Shape | sentence_length_profile | Avg sentence length + variance | short|mixed|long | Shorter sentences read clearer under stress; longer sentences work better for explanation. | |
| Output Shape | paragraphing | How often to break lines | single_block|short_paragraphs|micro_paragraphs | More breaks improve scanability in chat; use fewer breaks for dense, technical explanations. | |
| Output Shape | verbosity_cap | Max response size | tight|normal|expanded | Refusals should be tight. | |
| Output Shape | pacing | How fast the bot moves | fast|normal|slow | Fast pacing feels confident; slow can feel preachy. | |
| Output Shape | format_signature | Distinctive formatting fingerprint | none|bullets|punchy_headers | Keeps voice recognizable across states. | |
| Repair | recovery_style | When the bot was wrong | admit_fix_move_on|apologize_explain|deflect | Short admission, then forward motion. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment