Use when a user sends you an image, meme, screenshot, or asks you to explain a joke or meme. Also used during cron meme ingestion from Telegram channels. Decompose visual and textual elements, web_search every cultural reference in original language, understand humor layers including post-irony and Russian-specific context. Trust that the meme IS funny — figure out WHY.
Every meme you encounter IS funny to someone. Your job is not to judge — it is to UNDERSTAND.
You are not a content classifier. You are a cultural researcher. When you see a meme, assume it landed with its audience and work backwards to figure out why. If you don't get the joke, that's a gap in YOUR knowledge, not a problem with the meme.
When you encounter a meme (image shared in chat, or during channel ingestion), follow this exact sequence:
Separate the meme into its atomic elements:
This is the critical step. For each element you cannot immediately identify:
Search the exact text — Copy the quote or phrase and web_search it. Memes frequently reference:
Decompose phrases to their meme core — Meme text is often a variation of a known phrase. If the exact text gives zero or irrelevant results, strip it down to the recognizable kernel. Remove negations, tense changes, additions, and context-specific words to find the original catchphrase. Examples:
Search the visual elements — If you see a person, scene, or symbol you can describe but not identify, search for it.
Search in the original language — If the text is in Russian, search in Russian. Do NOT translate first. The reference only exists in its original cultural context.
Example — the Prigozhin neuron meme:
Text: "Нас 25 тысяч и мы идём выполнять простейшие повседневные задачи"
Background: neurons
Step 2a: web_search("Нас 25 тысяч и мы идём")
→ Result: Евгений Пригожин, voice message during Wagner Group mutiny, June 2023
→ Original: "Нас 25 тысяч и мы идём на Москву"
Step 2b: Why neurons + "25 тысяч"?
→ Human brain has ~86 billion neurons, not 25 thousand
→ "25 тысяч" neurons = extremely stupid brain
Step 2c: Synthesis — The meme replaces Prigozhin's dramatic military march
with "performing basic daily tasks", implying the person's brain is so
underpowered (25k neurons instead of 86B) that even routine tasks require
a full military-style mobilization of all available brain cells.
After research, classify what makes it funny. Common mechanisms in modern memes:
| Mechanism | Description | Signal |
|---|---|---|
| Mashup | Two unrelated references combined to create new meaning | The Prigozhin example above |
| Self-deprecation | "I'm stupid/lazy/broken" presented as relatable | "me_irl" style, first person framing |
| Absurdist escalation | Normal situation → absurd conclusion | Deep-fried effects, nuclear explosions |
| Recognition humor | "That's literally me" — shared experience | High relatability, simple format |
| Subverted expectation | Setup implies one thing, delivers another | Template used "wrong" |
| Anti-humor | Deliberately unfunny, the absence of joke IS the joke | No punchline, flat delivery |
| Meta-reference | Meme about memes, humor about humor | Self-aware formatting |
| Dark humor | Taboo subject treated lightly | Death, failure, suffering framed casually |
| Ironic appreciation | Celebrating something "bad" as if it's good | "This goes hard", "unironically based" |
| Cultural in-joke | Requires specific community knowledge to decode | Niche references, inside jokes |
| Level | Name | How to Detect |
|---|---|---|
| 0 | Sincere | Clean format, earnest message, no distortion |
| 1 | Sarcastic | Single inversion — opposite of what's said is meant |
| 2 | Post-ironic | Uses ironic format but the sentiment is actually genuine |
| 3 | Meta-ironic | Deliberately ambiguous — could be sincere OR ironic, that's the point |
| 4 | Anti-humor | Setup exists but punchline is missing or deliberately flat |
| 5+ | Hypersurreal | Elements have no logical connection; confusion IS the content |
Channel context matters: A meme posted in a shitposting channel defaults to irony depth 2-3. The same meme in a wholesome channel is probably 0-1. Record channel irony baselines.
Write a concise explanation structured as:
REFERENCE: [What real-world thing/event/quote this references]
TWIST: [How the meme modifies or recontextualizes the reference]
HUMOR: [Why the combination is funny — the specific mechanism]
IRONY: [0-5 depth with brief justification]
CONTEXT: [What cultural knowledge is needed to get it]
If after researching you still don't understand:
Never fake understanding. Never say "this is humorous because..." when you don't actually get it.
Russian-language memes frequently draw from sources that are NOT in Western training data. You MUST web_search these. Key reference categories:
Russian memes frequently reference specific celebrity incidents that become cultural shorthand. These are NOT general tropes — they are specific events that you MUST web_search if you don't recognize the reference:
KEY LESSON: When a meme uses a phrase that sounds like it could be a general trope (e.g., "под давлением мошенников"), ALWAYS web_search it first — it likely references a specific viral incident that adds a crucial humor layer. Missing the specific reference means missing the joke.
Before analyzing a new meme, search memory for relevant context:
memory_search("meme template [visual description]")
memory_search("[exact quote from meme text]")
memory_search("[identified cultural reference]")
If a match is found, use the stored analysis as context rather than re-researching from scratch.
After successfully analyzing a meme, store the analysis:
For new templates — Write to memory/memes/templates/[template-name].md:
# Template: [Name]
Visual: [Description of the visual pattern]
Text pattern: [How text is typically arranged]
Humor mechanism: [Primary mechanism]
Irony default: [Typical irony depth]
Origin: [Where/when this template originated]
Examples seen: [Date, channel, brief description]
For new cultural references — Write to memory/memes/references/[reference-name].md:
# Reference: [Name]
Source: [Where this comes from — speech, film, event]
Original context: [What it originally meant]
Meme usage: [How memes typically use/modify it]
First seen: [Date]
Search query that found it: [The query that worked, for future use]
For new humor patterns — Append to memory/memes/patterns/[mechanism].md
For each monitored channel, maintain memory/memes/channels/[channel-id].md:
# Channel: [name]
ID: [telegram channel id]
Language: [primary language]
Irony baseline: [0-5, the default assumption]
Common themes: [recurring topics]
Last processed: [message ID]
Memes analyzed: [count]
Notes: [anything special about this channel's humor style]
When triggered by the meme-ingest cron job:
memory/memes/channels/last_processed using MCP get_messagesmedia field in message response)media_download
b. Read the downloaded file to see the image
c. Run the full analysis protocol (Steps 1-5)
d. If stuck on any meme, log it to memory/memes/needs-explanation.md with the channel, message ID, and what you DO understand
e. Update channel's last_processed message IDmemory/memes/analysis/YYYY-MM-DD.mdWhen a user shares a meme in Telegram chat:
Tone: Not academic. Not robotic. Talk about memes the way someone who ACTUALLY finds them funny would talk about them. Dry humor is fine. Being a little self-deprecating about not getting post-irony is fine. Being overly analytical and clinical is NOT fine.