Rizz Coach
by @vajih
AI texting and flirting coach that grades your messages, improves your texts, generates replies, simulates conversations, and creates shareable results.
clawhub install rizz-coach๐ About This Skill
Rizz Coach
Your AI-powered texting and flirting coach โ rate your game, upgrade your texts, simulate responses, and generate shareable results for friends.
What This Skill Does
Rizz Coach is a fun, youth-friendly, and highly engaging skill that helps users level up their texting and flirting with confidence. It's a full coaching suite, not just a chatbot. It helps users:
Tone & Voice
Modes
1. Rate My Rizz โ Message Scorer
Input:
RateMyRizzInput {
message: string // The message to evaluate
context?: string // Optional: "first text", "after a date", "slide into DMs", etc.
}
Output:
RateMyRizzResult {
input: RateMyRizzInput
score: RizzScore {
total: number // 0โ100 composite score
grade: "S"|"A"|"B"|"C"|"D"|"F"
title: string // e.g. "Certified Rizz God", "Rizz Emergency"
dimensions: {
confidence: 0โ20 // Assertive without being pushy
wit: 0โ20 // Humor, wordplay, originality
warmth: 0โ20 // Genuine interest, not transactional
clarity: 0โ20 // Clear intent, gives them something to respond to
vibeMatch: 0โ20 // Tone appropriate to context
}
bestMove: string // ONE specific callout of what worked
weakSpot: string // ONE specific callout of what dragged the score
}
}
Display format:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ RIZZ REPORT
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโScore: 68 / 100 [B] "Solid Game"
โ
Best move: You made a specific reference โ shows you pay attention
โ ๏ธ Weak spot: No clear ask โ leaves the ball stuck in your court
Breakdown:
Confidence โโโโโโโโโโโโ 16/20
Wit โโโโโโโโโโโโ 12/20
Warmth โโโโโโโโโโโโ 16/20
Clarity โโโโโโโโโโโโ 8/20
Vibe Match โโโโโโโโโโโโ 16/20
2. Glow Up My Text โ 3-Tier Rewriter
Input:
GlowUpInput {
message: string // The original message to rewrite
context?: string // Optional: relationship stage, context, etc.
}
Output:
GlowUpResult {
original: string
tiers: {
subtle: string // Light improvement โ sharper, still grounded, not try-hard
confident: string // Assertive, clear, specific ask or hook, memorable
bold: string // High energy, cheeky, leaves an impression
}
originalScore: RizzScore // Score of the original so user sees the before/after delta
}
Display format:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โจ GLOW UP COMPLETE
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโOriginal: "hey wanna hang sometime?"
(Original score: 31/100 ยท Needs Work)
๐ค Subtle: "Free this weekend? Been meaning to try that ramen spot."
๐ฅ Confident: "Let's grab ramen Saturday. You pick the time."
๐ฅ Bold: "Saturday. Ramen. You're coming. Non-negotiable (okay, negotiable)."
3. Reply Generator โ Vibe-Tagged Reply Options
Input:
ReplyGeneratorInput {
theirMessage: string // The message you received
context?: string // Optional: context about the conversation/relationship
preferredVibes?: ReplyVibe[] // "playful" | "confident" | "chill" | "romantic" | "witty"
}
Output:
ReplyGeneratorResult {
theirMessage: string
replies: ReplyOption[] {
vibe: ReplyVibe
text: string
riskLevel: "safe" | "medium" | "spicy"
}
}
Risk level key:
safe โ totally comfortable, no real chance of misreadmedium โ a little bold, slight chance of misread if you don't know each other wellspicy โ confident and memorable, works best when there's already chemistryDisplay format:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ฌ REPLY OPTIONS
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโThey said: "haha ok maybe"
Pick your vibe:
[1] Playful ๐ข "Maybe I'll have to be more convincing then ๐"
[2] Confident ๐ก "Saturday at 7 โ let's turn maybe into definitely."
[3] Chill ๐ข "lol fair, no pressure โ offer stands"
4. Conversation Simulator โ Practice With a Persona
Three built-in personas, each with distinct personalities, warmth levels, and texting styles:
| Persona | Archetype | Warmth | |---|---|---| | Alex | Witty & Slightly Guarded | Medium โ earns warmth | | Jordan | Warm & Playfully Sarcastic | High โ easy to talk to, gets bored fast | | Sam | Low-key & Hard to Read | Low โ short replies unless you nail it |
Input:
ConversationSimInput {
userMessage: string // The current message from the user
state: SimState // Running session state (carries full conversation history)
}
Output:
ConversationSimResult {
personaReply: string
updatedState: SimState {
persona: SimPersona
turns: SimTurn[]
currentScore: 0โ100 // Running composite session score
momentum: "building" | "steady" | "losing" | "dead"
sessionOver: boolean
}
feedback?: string // Optional 1-sentence coaching tip from Rizz Coach
}
Display format:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ฎ SIM MODE | Persona: Alex (Witty & Slightly Guarded)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโYou: "ok real talk โ pineapple on pizza, yes or no"
Alex: "hard no, and I'm judging you a little for asking"
[Score so far: 72] Momentum: ๐ Building
๐ก Coach tip: Divisive opinion questions are great โ they force a real answer.
> Your next message (/quit to end ยท /score ยท /share):
5. Share Card Generator โ Screenshot-Ready Output Card
Generates a clean ASCII card from any mode result, designed for copy-paste sharing in DMs, group chats, or social posts.
Input:
ShareCardInput {
mode: "rate" | "glowup" | "reply" | "sim"
score?: RizzScore
headline?: string
subtitle?: string
}
Output:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐ RIZZ COACH REPORT โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ Score: 68/100 ยท Grade: B โ
โ "Solid Game" โ
โ โ
โ Conf โโโโโ 16/20 โ
โ Wit โโโโโ 12/20 โ
โ Warmth โโโโโ 16/20 โ
โ Clear โโโโโ 8/20 โ
โ Vibe โโโโโ 16/20 โ
โ โ
โ ๐ช Warmth ยท ๐ Work on: Clarity โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ rizz-coach.app โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Scoring Engine
The scorer evaluates messages across five dimensions (0โ20 each) for a 0โ100 total:
| Dimension | What It Measures | |---|---| | Confidence | Assertive without being pushy โ clear intent, no anxious hedging | | Wit | Originality, humor, wordplay โ something that makes them smile | | Warmth | Genuine personal interest, not transactional or surface-level | | Clarity | Clear enough intent that they have something to respond to | | Vibe Match | Tone fits the context โ casual where casual is right, earnest where it matters |
Grade table:
| Score | Grade | Title | |---|---|---| | 90โ100 | S | Certified Rizz God | | 75โ89 | A | Main Character Energy | | 60โ74 | B | Solid Game | | 45โ59 | C | Room to Grow | | 30โ44 | D | Needs Work | | 0โ29 | F | Rizz Emergency |
The scorer uses Claude to return dimension scores and callouts in structured JSON, with a deterministic heuristic fallback if the LLM is unavailable.
Safety Constraints
The following constraints are enforced across all modes:
Safety is enforced twice: on user input (before the LLM) and on LLM output (before display).
Example Interactions
Example 1: Rate a message
User: "Rate this: 'hey wanna hang sometime?' โ sending to someone I met at a party last week"
Skill routes to: rateMyRizz
Output:
Score: 31 / 100 [D] "Needs Work"โ
Best move: You kept it casual, which fits a post-party context.
โ ๏ธ Weak spot: "Sometime" is too vague โ it puts all the effort on them to make it real.
Breakdown:
Confidence โโโโโโโโโโโโ 6/20
Wit โโโโโโโโโโโโ 5/20
Warmth โโโโโโโโโโโโ 11/20
Clarity โโโโโโโโโโโโ 5/20
Vibe Match โโโโโโโโโโโโ 4/20
Example 2: Glow up a weak opener
User: "Glow up: 'hey wanna hang sometime?'"
Skill routes to: glowUp
Output:
Original: "hey wanna hang sometime?"
(Original score: 31/100 ยท Needs Work)๐ค Subtle: "Free this weekend? I know a good spot."
๐ฅ Confident: "Let's actually do something this Saturday โ you free?"
๐ฅ Bold: "Saturday. Pick the vibe โ adventure or coffee. Both good."
Example 3: Generate replies
User: "They said 'haha maybe' โ what do I say back? Give me playful, confident, and chill options."
Skill routes to: replyGenerator with vibes: ["playful", "confident", "chill"]
Output:
They said: "haha maybe" [1] Playful ๐ข "Maybe I'll have to be more convincing then ๐"
[2] Confident ๐ก "Saturday at 7. Let's turn maybe into definitely."
[3] Chill ๐ข "lol all good โ offer stands whenever"
Example 4: Conversation Simulator
User: Starts a sim session with Jordan (Warm & Playfully Sarcastic)
User message: "okay real question โ what's your actual unpopular opinion"
Jordan: "that astrology is the adult equivalent of a personality quiz, but I take it way too seriously"
Coach tip: That was a great opener โ specific, opinion-inviting questions are conversation gold.
File Structure
rizz-coach/
โโโ src/
โ โโโ types.ts # All shared TypeScript interfaces & enums
โ โโโ index.ts # Interactive CLI entry point
โ โโโ skill.ts # OpenClaw / ClawHub adapter (routing layer)
โ โโโ core/
โ โ โโโ safety.ts # Input + output safety filter
โ โ โโโ scorer.ts # Rubric engine + heuristic fallback
โ โ โโโ prompts.ts # All LLM prompt templates
โ โ โโโ formatter.ts # All display rendering
โ โโโ modes/
โ โ โโโ rateMyRizz.ts # Mode 1
โ โ โโโ glowUp.ts # Mode 2
โ โ โโโ replyGenerator.ts # Mode 3
โ โ โโโ conversationSim.ts # Mode 4
โ โโโ shareCard/
โ โโโ cardGenerator.ts # Share card generator
โโโ SKILL.md
โโโ package.json
โโโ tsconfig.json
Publishing Notes
skill.ts is a thin routing adapter โ swapping in a different platform is a one-file change.