Skip to main content
Status: Brainstorm (NEW) Phase: Phase 3 (Personalization) | Tier: Pro

The Problem

Every piece of AI-generated content in High IQ currently speaks in one voice. The research reports, Professor High chat responses, podcast episodes, social post captions — they all use the same tone. But users are not one-size-fits-all. A medical patient researching terpene interactions for anxiety management wants precise, citation-heavy, clinical language. A recreational user who just picked up a half ounce of Runtz wants something that sounds like a friend breaking it down. A busy professional wants bullet points and no fluff. A curious deep-diver wants every detail explained thoroughly. A user who treats cannabis as culture wants wit, wordplay, and personality. Right now, all of these people get the same output. AI Preferences changes that. One setting, applied globally, and every AI-generated touchpoint in the app adapts to the way the user actually wants to receive information.

Tone Options

Five distinct tones, each designed around a real user archetype:

Casual

Relaxed and conversational. Uses approachable language, occasional slang, and a “friend explaining over a session” vibe. This is the default for new users.Example: “Blue Dream is basically the crowd-pleaser of sativas — smooth, uplifting, and great for getting stuff done without feeling wired. The myrcene keeps it mellow while the pinene gives you that clear-headed focus.”

Scientific

Data-driven and precise. References studies, uses proper terminology, and maintains a clinical tone. For medical users and terpene nerds who want the real data.Example: “Blue Dream exhibits a myrcene-dominant terpene profile (0.37%) complemented by significant pinene (0.12%) and caryophyllene (0.09%) concentrations. This ratio is associated with anxiolytic and anti-inflammatory properties, consistent with findings in Russo (2011).”

Funny

Witty and lighthearted. Includes wordplay, puns, and humor without sacrificing accuracy. For users who want education with entertainment.Example: “Blue Dream is the Golden Retriever of cannabis — everybody loves it, it gets along with everything, and it will absolutely make you forget what you walked into the kitchen for. Myrcene-heavy with a pinene chaser, which is science-speak for ‘relaxed but functional.’”

Concise

Short, direct, no fluff. Bullet-point style when possible. Just the facts, organized for quick scanning. For busy users who want answers, not essays.Example: “Blue Dream — Sativa-dominant hybrid. High Family: Creative. Key terpenes: myrcene, pinene, caryophyllene. Effects: uplifting, focused, relaxed. Good for: daytime use, creative work, mild anxiety. THC: 17-24%.”

Detailed

Comprehensive and thorough. Explains everything — the what, the why, the how, the history. For users who want to understand cannabis deeply and enjoy the learning process.Example: “Blue Dream is a sativa-dominant hybrid originally bred in Santa Cruz, California, by crossing Blueberry (an indica known for its sweet berry terpene profile and full-body relaxation) with Haze (a legendary sativa prized for its cerebral, energizing effects). The result is a strain that inherits Blueberry’s myrcene dominance — which contributes to its calming baseline — while Haze’s genetic influence expresses as elevated pinene and terpinolene levels that produce the characteristic clear-headed, creative uplift. The terpene interaction here is worth understanding: myrcene alone at this concentration would typically produce sedation, but the pinene acts as a counterbalance…”

What It Affects

The AI tone preference is not a cosmetic label. It is a system instruction modifier that threads through every AI generation pipeline in the app. When a user sets their preference, the following touchpoints adapt:
FeatureHow It Adapts
Research ReportsTone of analysis sections, level of technical detail, vocabulary complexity, citation style
Professor High ChatConversational style, response length, use of humor or formality, explanation depth
AI PodcastsHost personalities, dialogue style, how technical the discussion gets, pacing
Social Post CaptionsVoice of the generated caption, hashtag style, emoji usage
Onboarding EmailsWelcome message tone, how features are explained, CTA language
Strain RecommendationsHow recommendations are framed and justified
Label Scan ResultsHow terpene findings and High Family classification are explained
The tone affects how information is presented, not what information is included. A “Concise” user still gets the same data points as a “Detailed” user — the difference is in framing, length, and language complexity.

User Experience

Settings UI

The preference lives at Settings > AI Preferences. The interface is a visual selector — not a dropdown — where each tone option shows:
  1. The tone name and icon
  2. A one-line description of the style
  3. A live preview snippet showing how the tone sounds, using one of the user’s own strains (or a popular strain if they have no history)
The preview is critical. Users should hear the difference before committing. Tapping a tone card updates the preview in real time. A “Save” button confirms the choice.

First-Time Setup

New users default to Casual. During onboarding, after the user completes their preferences quiz, a screen presents the five tone options with the preview snippets. This is a soft prompt, not a gate — users can skip and change later.

Changing Preference

Users can change their tone at any time from Settings. The change applies to all future AI generations immediately. Previously generated content (existing reports, saved podcasts) retains its original tone — regeneration is available for Pro users.

Technical Approach

Data Model

The preference is stored in the Convex user profile:
// Convex schema addition
aiTonePreference: v.optional(
  v.union(
    v.literal("casual"),
    v.literal("scientific"),
    v.literal("funny"),
    v.literal("concise"),
    v.literal("detailed")
  )
)
Default value: "casual" (applied at the application layer when the field is undefined).

Prompt Integration

Every AI generation call includes a system instruction modifier based on the user’s preference. The modifier is injected at the prompt construction layer, not at the API call layer, so it composes cleanly with existing prompt templates.
// Simplified example of how the tone modifier works
const toneModifiers = {
  casual: "Write in a relaxed, conversational tone. Use approachable language. Feel like a knowledgeable friend explaining things casually.",
  scientific: "Write in a precise, data-driven tone. Use proper scientific terminology. Reference studies when relevant. Maintain clinical objectivity.",
  funny: "Write with wit and humor. Include wordplay and lighthearted observations. Be entertaining while remaining accurate.",
  concise: "Be extremely brief. Use bullet points when possible. No filler words. Just facts and actionable insights.",
  detailed: "Be thorough and comprehensive. Explain context, history, and mechanisms. Assume the reader wants to understand deeply."
};
This modifier is prepended to the system prompt for every LLM call. The existing prompt templates in @tiwih/ai-prompts would gain a tone parameter that selects the appropriate modifier.

Pipeline Integration Points

PipelineIntegration Method
Report generation (/api/v1/reports/stream)Add tone to request body, inject into system prompt
Professor High chatAdd tone to conversation context, inject into system prompt
AI podcasts (Trigger.dev)Pass tone to script generation stage
Social postsPass tone to caption generation prompt
Onboarding emails (Trigger.dev)Read tone from user profile at email generation time

Tier Impact

TierAccess
FreeDefault tone only (Casual). Tone selector visible but locked with Pro badge. Preview of all tones available so users can see what they are missing.
ProFull access to all 5 tones. Change anytime. Regenerate existing content in new tone.
Making tone selection a Pro feature is a soft upgrade nudge. Free users see the previews and understand the value, but cannot customize. The locked selector with visible previews is more effective than hiding the feature entirely.

Dependencies

  • AI report generation pipeline — built and live
  • Professor High chat — built and live
  • @tiwih/ai-prompts package — built and live
  • Convex user profile schema — built and live
  • Tone modifier system in @tiwih/ai-prompts
  • Settings UI for tone selection with live preview
  • Convex schema migration to add aiTonePreference field
  • Integration with all AI generation endpoints
AI Preferences has zero hard dependencies on other planned features. It enhances existing AI pipelines without requiring any new infrastructure. The entire feature is a Convex schema field, a prompt modifier library, and a Settings UI screen.

Open Questions

  1. Per-feature tones — Should users be able to set different tones per feature (e.g., Scientific for reports but Casual for chat)? Starting with a single global setting is simpler, but power users may want granular control. A “Global” toggle with per-feature overrides could work as a v2 enhancement.
  2. Custom tones — Should users be able to write their own tone description (“Talk to me like a surfer bro who also has a PhD”)? This is technically easy (pass user text as system instruction) but hard to quality-control.
  3. Tone + language — If the app adds multi-language support, does tone preference interact with language? A “Funny” tone in Spanish requires different cultural references than in English.
  4. Tone preview data — The live preview in Settings needs a strain to demonstrate with. Should it use the user’s most recent strain, their favorite strain, or a universally known strain like Blue Dream?
  5. Regeneration costs — If Pro users can regenerate existing reports in a new tone, this doubles AI generation costs for users who experiment. Should there be a cooldown, or is unlimited regeneration fine?

  • Report Sharing — Shared reports carry the sharer’s tone preference, exposing recipients to different styles
  • AI Podcasts — Podcast host personalities adapt to the selected tone
  • Social Posts — Caption voice matches the user’s tone preference
  • Onboarding AI Emails — Email sequence tone adapts to user preference (if set during onboarding)