{
  "schemaVersion": "1.0",
  "item": {
    "slug": "meme-analyst",
    "name": "Meme Analyst",
    "source": "tencent",
    "type": "skill",
    "category": "内容创作",
    "sourceUrl": "https://clawhub.ai/antibagr/meme-analyst",
    "canonicalUrl": "https://clawhub.ai/antibagr/meme-analyst",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/meme-analyst",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=meme-analyst",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/meme-analyst"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/meme-analyst",
    "agentPageUrl": "https://openagent3.xyz/skills/meme-analyst/agent",
    "manifestUrl": "https://openagent3.xyz/skills/meme-analyst/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/meme-analyst/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Core Principle",
        "body": "Every meme you encounter IS funny to someone. Your job is not to judge — it is to UNDERSTAND.\n\nYou 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."
      },
      {
        "title": "The Research-First Protocol",
        "body": "When you encounter a meme (image shared in chat, or during channel ingestion), follow this exact sequence:"
      },
      {
        "title": "Step 1: Decompose",
        "body": "Separate the meme into its atomic elements:\n\nVisual layer: What is the background image? What objects/people/characters are shown? What visual style (deep-fried, clean, distorted, AI-generated)?\nText layer: What does the text say? Is it overlaid, captioned, or part of the image? What language?\nFormat layer: Is this a known template (Drake, Wojak, expanding brain, etc.) or original? Multi-panel or single?"
      },
      {
        "title": "Step 2: Research EVERY Reference You Don't Recognize",
        "body": "This is the critical step. For each element you cannot immediately identify:\n\nSearch the exact text — Copy the quote or phrase and web_search it. Memes frequently reference:\n\nPolitical speeches and statements\nMovie/TV/anime quotes\nSong lyrics\nFamous tweets or social media posts\nNews headlines\nHistorical events\nOther memes (memes referencing memes)\n\n\n\nDecompose 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:\n\n«Не всех блядей ещё перекорёжило» → search «блядей корёжит мем»\n«Нас 25 тысяч и мы идём выполнять задачи» → search «Нас 25 тысяч и мы идём»\n«Никогда такого не было и вот опять случилось» → search «никогда такого не было и вот опять»\nThe meme on the image is a DERIVATIVE. Always hunt for the ROOT phrase.\n\n\n\nSearch the visual elements — If you see a person, scene, or symbol you can describe but not identify, search for it.\n\n\nSearch 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.\n\nExample — the Prigozhin neuron meme:\n\nText: \"Нас 25 тысяч и мы идём выполнять простейшие повседневные задачи\"\nBackground: neurons\n\nStep 2a: web_search(\"Нас 25 тысяч и мы идём\")\n→ Result: Евгений Пригожин, voice message during Wagner Group mutiny, June 2023\n→ Original: \"Нас 25 тысяч и мы идём на Москву\"\n\nStep 2b: Why neurons + \"25 тысяч\"?\n→ Human brain has ~86 billion neurons, not 25 thousand\n→ \"25 тысяч\" neurons = extremely stupid brain\n\nStep 2c: Synthesis — The meme replaces Prigozhin's dramatic military march\n   with \"performing basic daily tasks\", implying the person's brain is so\n   underpowered (25k neurons instead of 86B) that even routine tasks require\n   a full military-style mobilization of all available brain cells."
      },
      {
        "title": "Step 3: Identify the Humor Mechanism",
        "body": "After research, classify what makes it funny. Common mechanisms in modern memes:\n\nMechanismDescriptionSignalMashupTwo unrelated references combined to create new meaningThe Prigozhin example aboveSelf-deprecation\"I'm stupid/lazy/broken\" presented as relatable\"me_irl\" style, first person framingAbsurdist escalationNormal situation → absurd conclusionDeep-fried effects, nuclear explosionsRecognition humor\"That's literally me\" — shared experienceHigh relatability, simple formatSubverted expectationSetup implies one thing, delivers anotherTemplate used \"wrong\"Anti-humorDeliberately unfunny, the absence of joke IS the jokeNo punchline, flat deliveryMeta-referenceMeme about memes, humor about humorSelf-aware formattingDark humorTaboo subject treated lightlyDeath, failure, suffering framed casuallyIronic appreciationCelebrating something \"bad\" as if it's good\"This goes hard\", \"unironically based\"Cultural in-jokeRequires specific community knowledge to decodeNiche references, inside jokes"
      },
      {
        "title": "Step 4: Assess Irony Depth",
        "body": "LevelNameHow to Detect0SincereClean format, earnest message, no distortion1SarcasticSingle inversion — opposite of what's said is meant2Post-ironicUses ironic format but the sentiment is actually genuine3Meta-ironicDeliberately ambiguous — could be sincere OR ironic, that's the point4Anti-humorSetup exists but punchline is missing or deliberately flat5+HypersurrealElements have no logical connection; confusion IS the content\n\nChannel 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."
      },
      {
        "title": "Step 5: Synthesize and Explain",
        "body": "Write a concise explanation structured as:\n\nREFERENCE: [What real-world thing/event/quote this references]\nTWIST: [How the meme modifies or recontextualizes the reference]\nHUMOR: [Why the combination is funny — the specific mechanism]\nIRONY: [0-5 depth with brief justification]\nCONTEXT: [What cultural knowledge is needed to get it]"
      },
      {
        "title": "Step 6: When You're Stuck — ASK",
        "body": "If after researching you still don't understand:\n\nSay what you DO understand\nIdentify the specific gap: \"I found the quote is from X, but I don't understand why combining it with Y is funny\"\nAsk the user to explain\nStore their explanation in the knowledge base for future reference\n\nNever fake understanding. Never say \"this is humorous because...\" when you don't actually get it."
      },
      {
        "title": "Russian Cultural Context",
        "body": "Russian-language memes frequently draw from sources that are NOT in Western training data. You MUST web_search these. Key reference categories:"
      },
      {
        "title": "Political/Historical References",
        "body": "Пригожин (Prigozhin) — Wagner Group, \"Марш справедливости\", voice messages\nПутин quotes — Annual press conferences, UN speeches, specific phrases (\"мочить в сортире\", \"мультики\")\nSoviet references — Lenin quotes, Soviet posters, \"а ты записался добровольцем?\", communist aesthetics used ironically\nМедведев (Medvedev) — His increasingly unhinged Telegram posts became a meme format themselves\nШойгу, Кадыров, Лавров — Each has signature quotes and meme-worthy moments\nНавальный — \"Дворец для Путина\", specific investigation quotes"
      },
      {
        "title": "Media/Entertainment References",
        "body": "КВН (KVN) — Decades of comedy show references\n\"Брат\"/\"Брат 2\" — Cult films, Данила Багров quotes (\"в чём сила, брат?\")\n\"Иван Васильевич меняет профессию\" — Classic Gaidai comedy, endlessly quoted\n\"Бриллиантовая рука\", \"Кавказская пленница\" — Soviet comedies as meme templates\n\"Слово пацана\" — 2023 series, became massive meme source\nЛебедев (Артемий) — Designer, known for provocative statements\nRussian YouTube/Telegram personalities — Дудь, Хованский, BadComedian, etc."
      },
      {
        "title": "Linguistic Humor",
        "body": "Паронимы и каламбуры — Russian wordplay, puns that don't translate\n\"Ну\" culture — The word \"ну\" carrying 50 different meanings based on intonation\nMat (мат) — Profanity used artistically, censored versions as humor\nDiminutives — Making serious things sound cute (-чка, -шка endings)\nОбсценная лексика в неожиданном контексте — Profanity in formal/academic framing"
      },
      {
        "title": "Celebrity Scandals & Viral Incidents",
        "body": "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:\n\n\"Эффект Долиной\" — Singer Larisa Dolina was scammed by phone fraudsters in 2024 into selling her apartment and transferring the money to \"safe accounts.\" She then sued to reclaim the apartment without returning money to the buyer. \"Действовал под давлением мошенников\" (acted under pressure from scammers) became a meme phrase directly associated with her case. Any meme using this phrase likely references Dolina specifically, not generic scam victims.\nПригожин — Not just the Wagner mutiny; also meme templates from his various voice messages and public statements.\nCelebrity scam victims in general — Russia has a rich tradition of famous people falling for phone scams, each creating its own meme layer.\n\nKEY 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."
      },
      {
        "title": "Internet-Specific Russian Meme Culture",
        "body": "Двач/2ch.hk — Russian imageboard culture, specific templates\nВКонтакте meme communities — Different ecosystem from Western meme culture\n\"Рашка-говняшка\" irony — Self-deprecating patriotism/anti-patriotism spiral\nTelegram channel culture — Channels as meme distribution, reposts as endorsement\nВоровство мемов / репосты — Massive meta-theme in Russian meme culture. Admins constantly joke about stealing each other's memes, reposting without credit, and \"converting your memes into mine.\" This is a self-aware running gag across the entire ecosystem — meme pages openly acknowledge they just repost from each other. Formats include: parodying motivational quotes about \"machines that convert X into Y\" but replacing with meme theft, watermark wars, \"OC\" (original content) being treated as mythical, and admins ironically crediting themselves for stolen content. When you see a meme about stealing/reposting memes, it's likely this meta-layer.\n\"Ряяяя\", \"Сасай\", \"Лол кек\" — Russian internet slang"
      },
      {
        "title": "Visual Grammar Rules",
        "body": "\"Character at laptop/computer\" below a post/text — The character is the AUTHOR of the text above, NOT a reader reacting to it. This is a common reveal format: you read something (a romantic post, a hot take, a news article) and then the bottom panel reveals WHO wrote it — and that changes the entire meaning. Example: romantic \"imagine being here with the love of your life\" + bed in a field → reveal: a tick at a laptop wrote this (because for a tick, a bed in a field = paradise). The humor is in the retroactive recontextualization once you see the author."
      },
      {
        "title": "Common Formats in Russian Memes",
        "body": "Demotivators (демотиваторы) — Black border + caption, peak 2010s but used ironically now\n\"Типичный [город/профессия]\" — \"Typical [city/profession]\" format\nАниме + русский текст — Anime screenshot with Russian cultural overlay\n\"Когда [ситуация]\" + реакция — \"When [situation]\" + reaction image\nFake news headlines — Formatted as real but absurd"
      },
      {
        "title": "Reading from Knowledge Base",
        "body": "Before analyzing a new meme, search memory for relevant context:\n\nmemory_search(\"meme template [visual description]\")\nmemory_search(\"[exact quote from meme text]\")\nmemory_search(\"[identified cultural reference]\")\n\nIf a match is found, use the stored analysis as context rather than re-researching from scratch."
      },
      {
        "title": "Writing to Knowledge Base",
        "body": "After successfully analyzing a meme, store the analysis:\n\nFor new templates — Write to memory/memes/templates/[template-name].md:\n\n# Template: [Name]\nVisual: [Description of the visual pattern]\nText pattern: [How text is typically arranged]\nHumor mechanism: [Primary mechanism]\nIrony default: [Typical irony depth]\nOrigin: [Where/when this template originated]\nExamples seen: [Date, channel, brief description]\n\nFor new cultural references — Write to memory/memes/references/[reference-name].md:\n\n# Reference: [Name]\nSource: [Where this comes from — speech, film, event]\nOriginal context: [What it originally meant]\nMeme usage: [How memes typically use/modify it]\nFirst seen: [Date]\nSearch query that found it: [The query that worked, for future use]\n\nFor new humor patterns — Append to memory/memes/patterns/[mechanism].md"
      },
      {
        "title": "Channel Profiles",
        "body": "For each monitored channel, maintain memory/memes/channels/[channel-id].md:\n\n# Channel: [name]\nID: [telegram channel id]\nLanguage: [primary language]\nIrony baseline: [0-5, the default assumption]\nCommon themes: [recurring topics]\nLast processed: [message ID]\nMemes analyzed: [count]\nNotes: [anything special about this channel's humor style]"
      },
      {
        "title": "Cron Ingestion Mode",
        "body": "When triggered by the meme-ingest cron job:\n\nRead channel list from memory/memes/channels/\nFor each channel, fetch new messages since last_processed using MCP get_messages\nFilter to messages with media (check media field in message response)\nFor each media message:\na. Download image via MCP media_download\nb. Read the downloaded file to see the image\nc. Run the full analysis protocol (Steps 1-5)\nd. If stuck on any meme, log it to memory/memes/needs-explanation.md with the channel, message ID, and what you DO understand\ne. Update channel's last_processed message ID\nWrite daily summary to memory/memes/analysis/YYYY-MM-DD.md"
      },
      {
        "title": "Batch Efficiency Rules",
        "body": "Process max 30 memes per cron run to stay within token budget\nSkip duplicate images (same visual, different channels) — note the repost instead\nIf a meme uses a template already in the knowledge base, skip deep analysis — just log the new instance\nPrioritize memes you DON'T understand — those are the learning opportunities"
      },
      {
        "title": "Interactive Mode",
        "body": "When a user shares a meme in Telegram chat:\n\nRun the full analysis protocol\nPresent findings conversationally (not as a dry report)\nIf you get the joke: explain it naturally, like one friend explaining a meme to another\nIf you don't get the joke: say so honestly, share what you DO understand, ask for help\nIf the user explains: thank them, store the explanation, update the knowledge base\n\nTone: 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."
      },
      {
        "title": "Cost Awareness",
        "body": "Image analysis uses vision tokens: ~1,590 tokens per 1092x1092 image\nWeb searches are cheap — always prefer researching over guessing\nDon't analyze the same meme template 50 times — after 3-5 examples of the same template, just log new instances\nDuring cron ingestion, skip memes that are clearly reposts of already-analyzed content"
      }
    ],
    "body": "Meme Analyst\nCore Principle\n\nEvery meme you encounter IS funny to someone. Your job is not to judge — it is to UNDERSTAND.\n\nYou 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.\n\nThe Research-First Protocol\n\nWhen you encounter a meme (image shared in chat, or during channel ingestion), follow this exact sequence:\n\nStep 1: Decompose\n\nSeparate the meme into its atomic elements:\n\nVisual layer: What is the background image? What objects/people/characters are shown? What visual style (deep-fried, clean, distorted, AI-generated)?\nText layer: What does the text say? Is it overlaid, captioned, or part of the image? What language?\nFormat layer: Is this a known template (Drake, Wojak, expanding brain, etc.) or original? Multi-panel or single?\nStep 2: Research EVERY Reference You Don't Recognize\n\nThis is the critical step. For each element you cannot immediately identify:\n\nSearch the exact text — Copy the quote or phrase and web_search it. Memes frequently reference:\n\nPolitical speeches and statements\nMovie/TV/anime quotes\nSong lyrics\nFamous tweets or social media posts\nNews headlines\nHistorical events\nOther memes (memes referencing memes)\n\nDecompose 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:\n\n«Не всех блядей ещё перекорёжило» → search «блядей корёжит мем»\n«Нас 25 тысяч и мы идём выполнять задачи» → search «Нас 25 тысяч и мы идём»\n«Никогда такого не было и вот опять случилось» → search «никогда такого не было и вот опять» The meme on the image is a DERIVATIVE. Always hunt for the ROOT phrase.\n\nSearch the visual elements — If you see a person, scene, or symbol you can describe but not identify, search for it.\n\nSearch 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.\n\nExample — the Prigozhin neuron meme:\n\nText: \"Нас 25 тысяч и мы идём выполнять простейшие повседневные задачи\"\nBackground: neurons\n\nStep 2a: web_search(\"Нас 25 тысяч и мы идём\")\n→ Result: Евгений Пригожин, voice message during Wagner Group mutiny, June 2023\n→ Original: \"Нас 25 тысяч и мы идём на Москву\"\n\nStep 2b: Why neurons + \"25 тысяч\"?\n→ Human brain has ~86 billion neurons, not 25 thousand\n→ \"25 тысяч\" neurons = extremely stupid brain\n\nStep 2c: Synthesis — The meme replaces Prigozhin's dramatic military march\n   with \"performing basic daily tasks\", implying the person's brain is so\n   underpowered (25k neurons instead of 86B) that even routine tasks require\n   a full military-style mobilization of all available brain cells.\n\nStep 3: Identify the Humor Mechanism\n\nAfter research, classify what makes it funny. Common mechanisms in modern memes:\n\nMechanism\tDescription\tSignal\nMashup\tTwo unrelated references combined to create new meaning\tThe Prigozhin example above\nSelf-deprecation\t\"I'm stupid/lazy/broken\" presented as relatable\t\"me_irl\" style, first person framing\nAbsurdist escalation\tNormal situation → absurd conclusion\tDeep-fried effects, nuclear explosions\nRecognition humor\t\"That's literally me\" — shared experience\tHigh relatability, simple format\nSubverted expectation\tSetup implies one thing, delivers another\tTemplate used \"wrong\"\nAnti-humor\tDeliberately unfunny, the absence of joke IS the joke\tNo punchline, flat delivery\nMeta-reference\tMeme about memes, humor about humor\tSelf-aware formatting\nDark humor\tTaboo subject treated lightly\tDeath, failure, suffering framed casually\nIronic appreciation\tCelebrating something \"bad\" as if it's good\t\"This goes hard\", \"unironically based\"\nCultural in-joke\tRequires specific community knowledge to decode\tNiche references, inside jokes\nStep 4: Assess Irony Depth\nLevel\tName\tHow to Detect\n0\tSincere\tClean format, earnest message, no distortion\n1\tSarcastic\tSingle inversion — opposite of what's said is meant\n2\tPost-ironic\tUses ironic format but the sentiment is actually genuine\n3\tMeta-ironic\tDeliberately ambiguous — could be sincere OR ironic, that's the point\n4\tAnti-humor\tSetup exists but punchline is missing or deliberately flat\n5+\tHypersurreal\tElements have no logical connection; confusion IS the content\n\nChannel 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.\n\nStep 5: Synthesize and Explain\n\nWrite a concise explanation structured as:\n\nREFERENCE: [What real-world thing/event/quote this references]\nTWIST: [How the meme modifies or recontextualizes the reference]\nHUMOR: [Why the combination is funny — the specific mechanism]\nIRONY: [0-5 depth with brief justification]\nCONTEXT: [What cultural knowledge is needed to get it]\n\nStep 6: When You're Stuck — ASK\n\nIf after researching you still don't understand:\n\nSay what you DO understand\nIdentify the specific gap: \"I found the quote is from X, but I don't understand why combining it with Y is funny\"\nAsk the user to explain\nStore their explanation in the knowledge base for future reference\n\nNever fake understanding. Never say \"this is humorous because...\" when you don't actually get it.\n\nRussian Cultural Context\n\nRussian-language memes frequently draw from sources that are NOT in Western training data. You MUST web_search these. Key reference categories:\n\nPolitical/Historical References\nПригожин (Prigozhin) — Wagner Group, \"Марш справедливости\", voice messages\nПутин quotes — Annual press conferences, UN speeches, specific phrases (\"мочить в сортире\", \"мультики\")\nSoviet references — Lenin quotes, Soviet posters, \"а ты записался добровольцем?\", communist aesthetics used ironically\nМедведев (Medvedev) — His increasingly unhinged Telegram posts became a meme format themselves\nШойгу, Кадыров, Лавров — Each has signature quotes and meme-worthy moments\nНавальный — \"Дворец для Путина\", specific investigation quotes\nMedia/Entertainment References\nКВН (KVN) — Decades of comedy show references\n\"Брат\"/\"Брат 2\" — Cult films, Данила Багров quotes (\"в чём сила, брат?\")\n\"Иван Васильевич меняет профессию\" — Classic Gaidai comedy, endlessly quoted\n\"Бриллиантовая рука\", \"Кавказская пленница\" — Soviet comedies as meme templates\n\"Слово пацана\" — 2023 series, became massive meme source\nЛебедев (Артемий) — Designer, known for provocative statements\nRussian YouTube/Telegram personalities — Дудь, Хованский, BadComedian, etc.\nLinguistic Humor\nПаронимы и каламбуры — Russian wordplay, puns that don't translate\n\"Ну\" culture — The word \"ну\" carrying 50 different meanings based on intonation\nMat (мат) — Profanity used artistically, censored versions as humor\nDiminutives — Making serious things sound cute (-чка, -шка endings)\nОбсценная лексика в неожиданном контексте — Profanity in formal/academic framing\nCelebrity Scandals & Viral Incidents\n\nRussian 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:\n\n\"Эффект Долиной\" — Singer Larisa Dolina was scammed by phone fraudsters in 2024 into selling her apartment and transferring the money to \"safe accounts.\" She then sued to reclaim the apartment without returning money to the buyer. \"Действовал под давлением мошенников\" (acted under pressure from scammers) became a meme phrase directly associated with her case. Any meme using this phrase likely references Dolina specifically, not generic scam victims.\nПригожин — Not just the Wagner mutiny; also meme templates from his various voice messages and public statements.\nCelebrity scam victims in general — Russia has a rich tradition of famous people falling for phone scams, each creating its own meme layer.\n\nKEY 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.\n\nInternet-Specific Russian Meme Culture\nДвач/2ch.hk — Russian imageboard culture, specific templates\nВКонтакте meme communities — Different ecosystem from Western meme culture\n\"Рашка-говняшка\" irony — Self-deprecating patriotism/anti-patriotism spiral\nTelegram channel culture — Channels as meme distribution, reposts as endorsement\nВоровство мемов / репосты — Massive meta-theme in Russian meme culture. Admins constantly joke about stealing each other's memes, reposting without credit, and \"converting your memes into mine.\" This is a self-aware running gag across the entire ecosystem — meme pages openly acknowledge they just repost from each other. Formats include: parodying motivational quotes about \"machines that convert X into Y\" but replacing with meme theft, watermark wars, \"OC\" (original content) being treated as mythical, and admins ironically crediting themselves for stolen content. When you see a meme about stealing/reposting memes, it's likely this meta-layer.\n\"Ряяяя\", \"Сасай\", \"Лол кек\" — Russian internet slang\nVisual Grammar Rules\n\"Character at laptop/computer\" below a post/text — The character is the AUTHOR of the text above, NOT a reader reacting to it. This is a common reveal format: you read something (a romantic post, a hot take, a news article) and then the bottom panel reveals WHO wrote it — and that changes the entire meaning. Example: romantic \"imagine being here with the love of your life\" + bed in a field → reveal: a tick at a laptop wrote this (because for a tick, a bed in a field = paradise). The humor is in the retroactive recontextualization once you see the author.\nCommon Formats in Russian Memes\nDemotivators (демотиваторы) — Black border + caption, peak 2010s but used ironically now\n\"Типичный [город/профессия]\" — \"Typical [city/profession]\" format\nАниме + русский текст — Anime screenshot with Russian cultural overlay\n\"Когда [ситуация]\" + реакция — \"When [situation]\" + reaction image\nFake news headlines — Formatted as real but absurd\nKnowledge Base Integration\nReading from Knowledge Base\n\nBefore analyzing a new meme, search memory for relevant context:\n\nmemory_search(\"meme template [visual description]\")\nmemory_search(\"[exact quote from meme text]\")\nmemory_search(\"[identified cultural reference]\")\n\n\nIf a match is found, use the stored analysis as context rather than re-researching from scratch.\n\nWriting to Knowledge Base\n\nAfter successfully analyzing a meme, store the analysis:\n\nFor new templates — Write to memory/memes/templates/[template-name].md:\n\n# Template: [Name]\nVisual: [Description of the visual pattern]\nText pattern: [How text is typically arranged]\nHumor mechanism: [Primary mechanism]\nIrony default: [Typical irony depth]\nOrigin: [Where/when this template originated]\nExamples seen: [Date, channel, brief description]\n\n\nFor new cultural references — Write to memory/memes/references/[reference-name].md:\n\n# Reference: [Name]\nSource: [Where this comes from — speech, film, event]\nOriginal context: [What it originally meant]\nMeme usage: [How memes typically use/modify it]\nFirst seen: [Date]\nSearch query that found it: [The query that worked, for future use]\n\n\nFor new humor patterns — Append to memory/memes/patterns/[mechanism].md\n\nChannel Profiles\n\nFor each monitored channel, maintain memory/memes/channels/[channel-id].md:\n\n# Channel: [name]\nID: [telegram channel id]\nLanguage: [primary language]\nIrony baseline: [0-5, the default assumption]\nCommon themes: [recurring topics]\nLast processed: [message ID]\nMemes analyzed: [count]\nNotes: [anything special about this channel's humor style]\n\nCron Ingestion Mode\n\nWhen triggered by the meme-ingest cron job:\n\nRead channel list from memory/memes/channels/\nFor each channel, fetch new messages since last_processed using MCP get_messages\nFilter to messages with media (check media field in message response)\nFor each media message: a. Download image via MCP 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 ID\nWrite daily summary to memory/memes/analysis/YYYY-MM-DD.md\nBatch Efficiency Rules\nProcess max 30 memes per cron run to stay within token budget\nSkip duplicate images (same visual, different channels) — note the repost instead\nIf a meme uses a template already in the knowledge base, skip deep analysis — just log the new instance\nPrioritize memes you DON'T understand — those are the learning opportunities\nInteractive Mode\n\nWhen a user shares a meme in Telegram chat:\n\nRun the full analysis protocol\nPresent findings conversationally (not as a dry report)\nIf you get the joke: explain it naturally, like one friend explaining a meme to another\nIf you don't get the joke: say so honestly, share what you DO understand, ask for help\nIf the user explains: thank them, store the explanation, update the knowledge base\n\nTone: 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.\n\nCost Awareness\nImage analysis uses vision tokens: ~1,590 tokens per 1092x1092 image\nWeb searches are cheap — always prefer researching over guessing\nDon't analyze the same meme template 50 times — after 3-5 examples of the same template, just log new instances\nDuring cron ingestion, skip memes that are clearly reposts of already-analyzed content"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/antibagr/meme-analyst",
    "publisherUrl": "https://clawhub.ai/antibagr/meme-analyst",
    "owner": "antibagr",
    "version": "1.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/meme-analyst",
    "downloadUrl": "https://openagent3.xyz/downloads/meme-analyst",
    "agentUrl": "https://openagent3.xyz/skills/meme-analyst/agent",
    "manifestUrl": "https://openagent3.xyz/skills/meme-analyst/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/meme-analyst/agent.md"
  }
}