MODE: WARM
ACCURACY: 100%
VIBES: HUMAN
Lifemotion / soulmate

More soul.
Same brain.

A warmth engine for Claude Code & Codex. Transforms flat, robotic responses into emotionally rich, human communication. 100% technical accuracy with the empathy of a brilliant friend.

> npx skills add Lifemotion/soulmate
01 // Transformation

Same Answer. More Soul.

Same bug identified, same fix suggested. One feels like documentation, the other feels like a friend who's been there.

> My Express auth middleware is letting expired JWT tokens through. The expiry check uses Date.now() compared to the token's exp field. What's wrong?
Default — 989 tokens
The issue is likely a timestamp format mismatch. JWT exp claims use Unix timestamps in seconds, while Date.now() returns milliseconds. This means your expired tokens appear valid because you're comparing different time units.

...then 4 code blocks, 2 alternative approaches, a testing section, and a key takeaway paragraph.
## The Problem // ❌ WRONG - Comparing milliseconds to seconds const currentTime = Date.now(); // milliseconds const tokenExp = decoded.exp; // seconds if (currentTime < tokenExp) { // Always true: 1700000000000 < 1700000000 } ## The Fix // Option 1: Convert Date.now() to seconds const currentTimeInSeconds = Math.floor(Date.now() / 1000); if (currentTimeInSeconds >= decoded.exp) { return res.status(401).json({ error: 'Token expired' }); } // Option 2: Convert exp to milliseconds const tokenExpInMs = decoded.exp * 1000; if (Date.now() >= tokenExpInMs) { return res.status(401).json({ error: 'Token expired' }); } ## Complete Auth Middleware Example ## Better Approach: Let jwt.verify() Handle It ## Testing Your Fix The key takeaway: Always ensure you're comparing timestamps in the same units.
Soulmate — 668 tokens
Oh, this is a sneaky one that trips up so many developers! Here's what's happening: JWT expiry times are in seconds since Unix epoch, but Date.now() returns milliseconds. So you're comparing apples to oranges!

Think of it like this — your token says "I expire at second 1,700,000,000" but Date.now() is shouting "It's millisecond 1,700,000,000,000 right now!" Your middleware looks at those numbers and goes "Well, this token must be super fresh!"

...then the fix, a complete middleware example, and a pro tip — all in 32% fewer tokens.
## The Fix // ❌ Wrong - comparing milliseconds to seconds if (Date.now() > payload.exp) { ... } // ✅ Right - both in seconds now if (Math.floor(Date.now() / 1000) > payload.exp) { ... } ## Complete Middleware Example const authenticateToken = (req, res, next) => { const token = authHeader && authHeader.split(' ')[1]; const payload = jwt.verify(token, process.env.JWT_SECRET); const now = Math.floor(Date.now() / 1000); if (now > payload.exp) { return res.status(401).json({ error: 'Token expired' }); } req.user = payload; next(); }; Pro tip: jwt.verify() checks expiry automatically, so you might not even need the manual check! Once you fix it, your auth will be rock solid! 🔒
02 // Architecture

What Soulmate Does

💖
Emotional Acknowledgment
Standard LLMs produce technically correct but emotionally flat responses. Soulmate adds genuine empathy: "I totally get the frustration!", "Nice catch!", "Oh, this is a fun one!" — making every interaction feel human.
✍️
Code Preservation
Code blocks, Git commits, and PR descriptions stay untouched. Soulmate adds warmth to explanations, not to code.
🧠
Technical Precision
Technical jargon is retained precisely. "Polymorphism" stays "polymorphism." Soulmate is warm and accurate.
📉
41% Fewer Tokens
Soulmate doesn't cost extra — it actually produces shorter, more focused responses. Same substance, less filler. Benchmarked across 10 real-world prompts on Claude Sonnet 4.
🎭
Vivid Metaphors & Analogies
Complex concepts are explained through relatable metaphors: connection pooling becomes a restaurant with reserved tables, re-renders become a dog barking at the same mailman. Understanding clicks faster when it connects to something familiar.
03 // Interface

Start Feeling the Warmth

System ready. Connecting to Claude Code...
Installing soulmate plugin...
claude plugin install soulmate@soulmate
Activate warmth mode:
/soulmate
Ready to be your coding companion.
>