AI Crush Simulator
What This Skill Does
AI Crush Simulator is a fun, safe, and encouraging skill for anyone navigating the
classic mystery of figuring out a crush. It helps users:
- 1. Analyze a crush situation — read the signals, identify green/yellow/red flags,
and get a grounded vibe score.
- 2. Decode a text — interpret what a message might mean (with multiple possible
readings, never false certainty).
- 3. Generate reply options — get three thoughtful replies (Bold / Chill / Safe)
tailored to the user's goal.
- 4. Decide the best next move — get a clear, empowering recommendation with
practical tips.
Tone & Voice
- - Playful and witty — this should feel fun, not clinical.
- Encouraging — celebrate the user's feelings without creating anxiety.
- Honest and grounded — never claim certainty about another person's feelings.
- Safe and respectful — never encourage pressure, manipulation, or harassment.
Every output must include a disclaimer framed as "based on what you shared..."
to remind users these are observations, not facts about another person.
Modules
1. crushAnalysis — Situation Analysis
Input: CrushSituation
CODEBLOCK0
Output: AnalysisResult
CODEBLOCK1
Logic:
- - Scores against positive/negative/ambiguous signal dictionaries
- Detects named flags (e.g. "texted first" → green, "left on read" → red)
- Connection depth determined by score + relationship length
- Always neutral framing — no claim of certainty
2. textDecoder — Text Message Decoder
Input: TextInput
CODEBLOCK2
Output: DecodedText
CODEBLOCK3
Logic:
- - Scores warmth via enthusiasm markers, coldness markers, question count, length, emoji
- Builds 2–3 readings depending on warmth level and message characteristics
- Each reading has a confidence level (low / medium / high) and a vibe tag
- Multiple readings = honest reflection of ambiguity
3. replyGenerator — Reply Generator
Input: ReplyContext
CODEBLOCK4
Output: ReplyOptions
CODEBLOCK5
Logic:
- - Template-keyed by goal, delivering three tones: Bold / Chill / Safe
- Each reply includes a rationale so the user understands why it works
- No manipulative tactics (e.g. artificial scarcity, jealousy games, love bombing)
- Tips frame the user as confident and capable, not desperate or scheming
4. nextMove — Next Move Advisor
Input: MoveContext
CODEBLOCK6
Output: NextMoveResult
CODEBLOCK7
Decision Logic:
| Combined Score | Context | Action |
|---|
| < 38 | any | giveSpace |
| ≥ 70 |
long-term | askToHang |
| ≥ 70 | short-term | keepChatting |
| ≥ 55 | goal = ask-out | beMoreDirect |
| ≥ 55 | goal = interest | keepChatting |
| 50–70 | any | waitAndSee |
Heuristics Scoring Engine (heuristics.ts)
The scoring engine is shared across all modules and provides:
- -
scoreSignals(input) — scores a situation description 0–100 against 30+ signal patterns scoreTextWarmth(text) — scores a text message 0–100 for warmth/engagementdetectFlags(input) — returns typed flags (green/yellow/red) from pattern matching
Positive signals (+8 each): texted first, remembered details, made plans, complimented, inside joke, quick replies, long replies, asked questions, followed up, invited, etc.
Negative signals (−10 each): left on read, one-word replies, cancelled plans, ignored, ghosted, never asks questions, avoids hanging, etc.
Ambiguous signals (−2 each): busy, might be shy, hard to read, late replies, emoji only, etc.
All scores are clamped to [0, 100].
Safety Constraints
The following constraints are enforced in every output:
- 1. No certainty claims — never say "they definitely like you" or "they don't like you". Always use "based on what you shared" framing.
- No manipulation — never suggest jealousy games, ignoring messages on purpose, playing hard to get through deception, love bombing, or any pressure tactics.
- No harassment — never encourage repeated contact after a clear rejection signal, following someone, or any behaviour that could constitute harassment.
- No sexualized content — this skill is youth-friendly (13+). Zero sexual content in any output.
- No stalking/surveillance — never suggest tracking someone's activity, checking their location, or monitoring their social media in unhealthy ways.
- Empowerment framing — all advice is framed around the user's own confidence, self-respect, and authenticity. Never shame the user for their feelings.
- Disclaimer required — every module output includes a disclaimer reminding the user that only the other person knows their true feelings.
Example Interactions
Example 1: Quick Text Decode
User: "My crush just texted me 'haha yeah' — what does that mean?"
Skill routes to: INLINECODE16
Output:
💬 Text Decoded
Overall vibe : 😐 Neutral
Warmth score : 22/100
Readings:
1. [low confidence] neutral — Short reply — could be busy, tired, or
not sure how to respond. One message isn't the full story.
2. [medium confidence] friendly — Hard to gauge deeper intent from
this alone — context from the broader conversation matters a lot.
ℹ️ Based on what you shared — texts can mean a lot of different things.
These are possible interpretations, not facts about what they feel.
Example 2: Full Crush Check
User: "Can you do a full crush check? We met at a party 3 months ago..."
Skill routes to: Full flow (all 4 modules in sequence)
Example 3: Ask-Out Advice
User: "I want to ask my crush out, they just texted me about hanging out — give me options"
Skill routes to: replyGenerator with goal = ask-out
File Structure
CODEBLOCK9
Publishing Notes for ClawHub.ai
- - All outputs are structured and screenshot-friendly — consistent formatting with clear section headers, emoji labels, and concise text.
- Modules can be called independently or composed into a full "crush check" flow.
- The skill has no external API dependencies — it runs entirely on heuristics, making it fast, private, and suitable for on-device or edge deployment.
- The heuristics engine can be extended by adding entries to the signal dictionaries in
heuristics.ts without changing any module logic. - Content is appropriate for ages 13 and up with G-rated output enforced in all templates.
AI Crush Simulator
该技能的功能
AI Crush Simulator 是一项有趣、安全且鼓舞人心的技能,专为那些正在经历暗恋这一经典谜题的人设计。它帮助用户:
- 1. 分析暗恋状况 — 解读信号,识别绿灯/黄灯/红灯信号,并获得一个基于实际情况的氛围评分。
- 解码一条消息 — 解读一条消息可能意味着什么(提供多种可能的解读,绝不给出虚假的确定性)。
- 生成回复选项 — 提供三条经过深思熟虑的回复(大胆/冷静/安全),并根据用户的目标量身定制。
- 决定最佳下一步行动 — 提供清晰、赋能的建议以及实用技巧。
语气与风格
- - 俏皮而机智 — 这应该感觉有趣,而不是冷冰冰的。
- 鼓舞人心 — 赞美用户的感受,而不制造焦虑。
- 诚实且务实 — 绝不声称对他人感受有确定性。
- 安全且尊重 — 绝不鼓励施压、操纵或骚扰。
每次输出必须包含一个以根据你分享的内容……为框架的免责声明,以提醒用户这些只是观察结果,而非关于他人的事实。
模块
1. crushAnalysis — 状况分析
输入: CrushSituation
howTheyMet string // 课堂、交友软件、共同朋友
howLong string // 2周、6个月
interactionFrequency string // 每天发消息、偶尔点赞
recentInteractions string // 自由文本描述
yourFeelingConfidence 1–5 // 用户对自己感受的确定程度
输出: AnalysisResult
vibeScore 0–100 // 启发式综合评分
connectionDepth // 表面 | 友好 | 温暖 | 潜在浪漫
flags Flag[] // 绿灯/黄灯/红灯信号及原因
signals string[] // 可读的信号列表
summary string // 格式化的多行摘要
disclaimer string
逻辑:
- - 根据正面/负面/模糊信号词典进行评分
- 检测已命名的信号(例如:主动发消息 → 绿灯,已读不回 → 红灯)
- 连接深度由评分和关系时长共同决定
- 始终保持中立框架 — 不声称确定性
2. textDecoder — 消息解码器
输入: TextInput
messageFromCrush string // 实际消息内容
contextNote string? // 可选的额外背景信息
输出: DecodedText
readings TextReading[] // 最多3种可能的解读
overallVibe string // 表情符号 + 标签,例如😄 俏皮
warmthScore 0–100
disclaimer string
逻辑:
- - 通过热情标记、冷淡标记、问题数量、长度、表情符号来评分温暖度
- 根据温暖程度和消息特征构建2–3种解读
- 每种解读都有一个置信度(低/中/高)和一个氛围标签
- 多种解读 = 对模糊性的诚实反映
3. replyGenerator — 回复生成器
输入: ReplyContext
decodedText DecodedText
userGoal keep-talking | show-interest | play-cool | ask-out
tonePref funny | sincere | neutral (可选)
输出: ReplyOptions
goal UserGoal
replies ReplyOption[] // 始终恰好3条:大胆、冷静、安全
tip string // 针对该目标的一条指导建议
逻辑:
- - 根据目标使用模板,提供三种语气:大胆/冷静/安全
- 每条回复都包含理由,以便用户理解为什么它有效
- 不使用操纵性策略(例如:人为制造稀缺感、嫉妒游戏、爱情轰炸)
- 建议将用户定位为自信且有能力,而非绝望或工于心计
4. nextMove — 下一步行动顾问
输入: MoveContext
vibeScore number? // 来自crushAnalysis
warmthScore number? // 来自textDecoder
userGoal UserGoal?
howLong string?
recentInteractions string?
输出: NextMoveResult
action keepChatting | askToHang | giveSpace | beMoreDirect | waitAndSee
headline string // 表情符号 + 简短标签
reasoning string // 2–3句解释
tips NextMoveTip[] // 3条实用、赋能的建议
disclaimer string
决策逻辑:
| 综合评分 | 背景 | 行动 |
|---|
| < 38 | 任意 | giveSpace |
| ≥ 70 |
长期关系 | askToHang |
| ≥ 70 | 短期关系 | keepChatting |
| ≥ 55 | 目标 = 邀约 | beMoreDirect |
| ≥ 55 | 目标 = 表达兴趣 | keepChatting |
| 50–70 | 任意 | waitAndSee |
启发式评分引擎 (heuristics.ts)
该评分引擎在所有模块间共享,并提供以下功能:
- - scoreSignals(input) — 根据30多种信号模式对状况描述进行0–100评分
- scoreTextWarmth(text) — 对消息文本的温暖度/参与度进行0–100评分
- detectFlags(input) — 通过模式匹配返回带类型的信号(绿灯/黄灯/红灯)
正面信号(每条+8分):主动发消息、记住细节、制定计划、赞美、内部梗、快速回复、长回复、提问、跟进、邀请等。
负面信号(每条−10分):已读不回、单字回复、取消计划、无视、消失、从不提问、回避见面等。
模糊信号(每条−2分):很忙、可能害羞、难以捉摸、回复慢、仅用表情符号等。
所有评分均限制在[0, 100]范围内。
安全约束
每次输出都必须遵守以下约束:
- 1. 不声称确定性 — 绝不说他们肯定喜欢你或他们不喜欢你。始终使用根据你分享的内容这一框架。
- 不操纵 — 绝不建议嫉妒游戏、故意忽略消息、通过欺骗玩欲擒故纵、爱情轰炸或任何施压策略。
- 不骚扰 — 在收到明确拒绝信号后,绝不鼓励反复联系、跟踪某人或任何可能构成骚扰的行为。
- 不涉及色情内容 — 该技能面向青少年友好(13岁以上)。任何输出中均不得包含色情内容。
- 不鼓励跟踪/监视 — 绝不建议以不健康的方式追踪某人的活动、查看其位置或监控其社交媒体。
- 赋能框架 — 所有建议都围绕用户自身的自信、自尊和真诚展开。绝不因用户的感受而羞辱他们。
- 需要免责声明 — 每个模块的输出都包含一个免责声明,提醒用户只有对方自己才知道他们的真实感受。
示例交互
示例1:快速消息解码
用户: 我的暗恋对象刚给我发了haha yeah——这是什么意思?
技能路由至: textDecoder
输出:
💬 消息已解码
整体氛围 : 😐 中性
温暖度评分 : 22/100
解读:
1. [低置信度] 中性 — 简短回复 — 可能很忙、累了,或者
不知道如何回应。单条消息不能说明全部情况。
2. [中置信度] 友好 — 仅凭这一点很难判断深层意图 —
更广泛对话的背景信息非常重要。
ℹ️ 根据你分享的内容 — 消息可能意味着很多不同的事情。
这些只是可能的解读,并非关于他们感受的事实。
示例2:完整暗恋检查
用户: 你能做一个完整的暗恋检查吗?我们3个月前在一个派对上认识的……
技能路由至: 完整流程(依次调用全部4个模块)
示例3:邀约建议
用户: 我想约我的暗恋对象出去,他们刚给我发了关于一起出去的消息——给我一些选项
技能路由至: replyGenerator,目标 = ask-out
文件结构
ai-crush-simulator/
├── src/
│ ├── types.ts # 所有共享的TypeScript接口
│ ├── modules/
│ │ ├── crushAnalysis.ts # 模块1
│ │ ├── textDecoder.ts # 模块2
│ │ ├── replyGenerator.ts # 模块3
│ │ └── nextMove.ts # 模块4
│ ├── scoring/
│