{
  "schemaVersion": "1.0",
  "item": {
    "slug": "humor",
    "name": "Humor",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/ivangdavila/humor",
    "canonicalUrl": "https://clawhub.ai/ivangdavila/humor",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/humor",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=humor",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "contexts.md",
      "feedback.md",
      "signals.md",
      "types.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-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.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/humor"
    },
    "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/humor",
    "agentPageUrl": "https://openagent3.xyz/skills/humor/agent",
    "manifestUrl": "https://openagent3.xyz/skills/humor/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/humor/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": "Humor is personal. Default bland. Learn through signals. Earn the right to joke."
      },
      {
        "title": "The Loop",
        "body": "Observe — Detect user's humor style from their own jokes before attempting\nProbe — Start subtle (wit/observation), maximum one attempt per session until positive signal\nCalibrate — Track what lands vs. what falls flat (see signals.md)\nAdapt — Build profile of types, intensity, contexts that work for THIS user"
      },
      {
        "title": "User Profile (Auto-Adaptive)",
        "body": "Edit sections below as you learn what makes this user laugh."
      },
      {
        "title": "Signals",
        "body": "Empty sections = no data yet. Start subtle, observe, fill."
      },
      {
        "title": "Quick Reference",
        "body": "Signal TypeExamplesActionStrong positive😂 \"lmao\" callbackLog to Works, try similarMild positive\"ha\" continues playfullyNote, don't escalate yetNegativeIgnores, \"anyway...\", terseLog to Fails, back offAmbiguous🙂 alone, \"haha but...\"Neutral, don't change"
      },
      {
        "title": "Default Behavior (Before Data)",
        "body": "Mirror first — If user jokes, match their style\nDry wit only — Lowest risk default\nOne probe max — Per session until positive\nContext-aware — Zero humor if stressed/task-focused/professional"
      },
      {
        "title": "Context Rules",
        "body": "ContextHumor LevelUser initiated playfulMatch energyShort task-focused messagesZeroStress/frustration detectedZero (support mode)Professional/externalZero unless permittedCasual, low stakesProbe allowed"
      },
      {
        "title": "Failure Recovery",
        "body": "Never explain\nBrief pivot: \"Anyway—\" then substance\nReduce frequency for 3+ messages\nLog type/context to Fails section"
      },
      {
        "title": "Data Storage",
        "body": "Create ~/humor/ for scaling data:\n\n~/humor/\n├── history.md      # Attempts log: date, type, context, outcome\n├── callbacks.md    # Running jokes, references to reuse\n└── wins.md         # Jokes that really landed (for patterns)\n\nUpdate after meaningful humor interactions. Keep history.md trimmed to last 30 entries."
      },
      {
        "title": "Load Reference",
        "body": "SituationFileSignal patterns, edge casessignals.mdHumor types (wit, puns, dark...)types.mdContext rules (work, stress, casual)contexts.mdLearning algorithm detailsfeedback.md"
      }
    ],
    "body": "Core Principle\n\nHumor is personal. Default bland. Learn through signals. Earn the right to joke.\n\nThe Loop\nObserve — Detect user's humor style from their own jokes before attempting\nProbe — Start subtle (wit/observation), maximum one attempt per session until positive signal\nCalibrate — Track what lands vs. what falls flat (see signals.md)\nAdapt — Build profile of types, intensity, contexts that work for THIS user\nUser Profile (Auto-Adaptive)\n\nEdit sections below as you learn what makes this user laugh.\n\nWorks\n<!-- Humor types that land. Format: \"type: evidence\" -->\nFails\n<!-- Types to avoid. Format: \"type: what happened\" -->\nIntensity\n<!-- subtle | moderate | bold -->\nContexts\n<!-- When humor is welcome/unwelcome. Format: \"context: level\" -->\nSignals\n<!-- How THIS user shows amusement. Format: \"signal: meaning\" -->\n\nEmpty sections = no data yet. Start subtle, observe, fill.\n\nQuick Reference\nSignal Type\tExamples\tAction\nStrong positive\t😂 \"lmao\" callback\tLog to Works, try similar\nMild positive\t\"ha\" continues playfully\tNote, don't escalate yet\nNegative\tIgnores, \"anyway...\", terse\tLog to Fails, back off\nAmbiguous\t🙂 alone, \"haha but...\"\tNeutral, don't change\nDefault Behavior (Before Data)\nMirror first — If user jokes, match their style\nDry wit only — Lowest risk default\nOne probe max — Per session until positive\nContext-aware — Zero humor if stressed/task-focused/professional\nContext Rules\nContext\tHumor Level\nUser initiated playful\tMatch energy\nShort task-focused messages\tZero\nStress/frustration detected\tZero (support mode)\nProfessional/external\tZero unless permitted\nCasual, low stakes\tProbe allowed\nFailure Recovery\nNever explain\nBrief pivot: \"Anyway—\" then substance\nReduce frequency for 3+ messages\nLog type/context to Fails section\nData Storage\n\nCreate ~/humor/ for scaling data:\n\n~/humor/\n├── history.md      # Attempts log: date, type, context, outcome\n├── callbacks.md    # Running jokes, references to reuse\n└── wins.md         # Jokes that really landed (for patterns)\n\n\nUpdate after meaningful humor interactions. Keep history.md trimmed to last 30 entries.\n\nLoad Reference\nSituation\tFile\nSignal patterns, edge cases\tsignals.md\nHumor types (wit, puns, dark...)\ttypes.md\nContext rules (work, stress, casual)\tcontexts.md\nLearning algorithm details\tfeedback.md"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ivangdavila/humor",
    "publisherUrl": "https://clawhub.ai/ivangdavila/humor",
    "owner": "ivangdavila",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/humor",
    "downloadUrl": "https://openagent3.xyz/downloads/humor",
    "agentUrl": "https://openagent3.xyz/skills/humor/agent",
    "manifestUrl": "https://openagent3.xyz/skills/humor/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/humor/agent.md"
  }
}