{
  "schemaVersion": "1.0",
  "item": {
    "slug": "mediator",
    "name": "Mediator",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/dylntrnr/mediator",
    "canonicalUrl": "https://clawhub.ai/dylntrnr/mediator",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/mediator",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=mediator",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/prompts.md",
      "scripts/config-helper.py",
      "scripts/mediator.sh",
      "scripts/process-email.py",
      "scripts/process-imessage.py"
    ],
    "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/mediator"
    },
    "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/mediator",
    "agentPageUrl": "https://openagent3.xyz/skills/mediator/agent",
    "manifestUrl": "https://openagent3.xyz/skills/mediator/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/mediator/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": "Mediator Skill",
        "body": "Emotional firewall for difficult relationships. Intercepts messages from configured contacts, strips out emotional content, presents just the facts, and helps draft measured responses."
      },
      {
        "title": "Quick Start",
        "body": "# Initialize config (creates mediator.yaml if missing)\n~/clawd/skills/mediator/scripts/mediator.sh init\n\n# Add a contact to mediate\n~/clawd/skills/mediator/scripts/mediator.sh add \"Ex Partner\" \\\n  --email \"ex@email.com\" \\\n  --phone \"+15551234567\" \\\n  --channels email,imessage\n\n# Process incoming (usually called by cron/heartbeat)\n~/clawd/skills/mediator/scripts/mediator.sh check\n\n# List configured contacts\n~/clawd/skills/mediator/scripts/mediator.sh list\n\n# Remove a contact\n~/clawd/skills/mediator/scripts/mediator.sh remove \"Ex Partner\""
      },
      {
        "title": "Configuration",
        "body": "Config lives at ~/.clawdbot/mediator.yaml:\n\nmediator:\n  # Global settings\n  archive_originals: true      # Archive raw messages after processing\n  notify_channel: telegram     # Where to send summaries (telegram|slack|imessage)\n  \n  contacts:\n    - name: \"Ex Partner\"\n      email: \"ex@email.com\"\n      phone: \"+15551234567\"\n      channels: [email, imessage]\n      mode: intercept          # intercept | assist\n      summarize: facts-only    # facts-only | neutral | full\n      respond: draft           # draft | auto (dangerous)\n      \n    - name: \"Difficult Client\"  \n      email: \"client@company.com\"\n      channels: [email]\n      mode: assist             # Don't hide originals, just help respond\n      summarize: neutral\n      respond: draft"
      },
      {
        "title": "Modes",
        "body": "intercept: Archive/hide original, only show summary. User never sees raw emotional content.\nassist: Show original but also provide summary and response suggestions."
      },
      {
        "title": "Summarize Options",
        "body": "facts-only: Extract only actionable items, requests, deadlines. No emotion.\nneutral: Rewrite the message in neutral tone, preserving all content.\nfull: Show everything but flag emotional/manipulative language."
      },
      {
        "title": "Respond Options",
        "body": "draft: Generate suggested response, wait for approval before sending.\nauto: Automatically respond (use with extreme caution)."
      },
      {
        "title": "Email Flow",
        "body": "Gmail Pub/Sub notification arrives (real-time)\nCheck if sender matches any configured contact\nIf match:\n\nFetch full email content\nProcess through LLM to extract facts/strip emotion\nArchive original (apply \"Mediator/Raw\" label, mark read)\nSend summary to configured notify channel\nIf response needed, draft one"
      },
      {
        "title": "iMessage Flow",
        "body": "imsg watch monitors for new messages\nCheck if sender matches configured contact\nIf match:\n\nProcess message content\nSend summary to notify channel\nDraft response if requested"
      },
      {
        "title": "Scripts",
        "body": "mediator.sh - Main CLI wrapper\nprocess-email.py - Email processing logic\nprocess-imessage.py - iMessage processing logic\nsummarize.py - LLM-based content analysis and summarization"
      },
      {
        "title": "Heartbeat Check",
        "body": "Add to HEARTBEAT.md:\n\n## Mediator Check\n~/clawd/skills/mediator/scripts/mediator.sh check"
      },
      {
        "title": "Cron (for more frequent checking)",
        "body": "# Check every 5 minutes during business hours\n*/5 9-18 * * 1-5 ~/clawd/skills/mediator/scripts/mediator.sh check"
      },
      {
        "title": "Safety Notes",
        "body": "Never auto-respond to legal, financial, or child-related messages\nOriginal messages are archived, not deleted (recoverable)\nAll actions logged to ~/.clawdbot/logs/mediator.log\nReview and adjust prompts if summaries miss important context"
      },
      {
        "title": "Example Output",
        "body": "Original email:\n\nI can't BELIEVE you would do this to me AGAIN. After everything I've done for you!!! You NEVER think about anyone but yourself. I need you to pick up the kids at 3pm on Saturday and if you can't even do THAT then I don't know what to say anymore.\n\nMediator summary:\n\nFrom: Ex Partner\nChannel: Email\nAction Required: Yes\nRequest: Pick up kids at 3pm Saturday\nSuggested response:\n\"Confirmed. I'll pick up the kids at 3pm on Saturday.\"\n\nSee references/prompts.md for the LLM prompts used in processing."
      }
    ],
    "body": "Mediator Skill\n\nEmotional firewall for difficult relationships. Intercepts messages from configured contacts, strips out emotional content, presents just the facts, and helps draft measured responses.\n\nQuick Start\n# Initialize config (creates mediator.yaml if missing)\n~/clawd/skills/mediator/scripts/mediator.sh init\n\n# Add a contact to mediate\n~/clawd/skills/mediator/scripts/mediator.sh add \"Ex Partner\" \\\n  --email \"ex@email.com\" \\\n  --phone \"+15551234567\" \\\n  --channels email,imessage\n\n# Process incoming (usually called by cron/heartbeat)\n~/clawd/skills/mediator/scripts/mediator.sh check\n\n# List configured contacts\n~/clawd/skills/mediator/scripts/mediator.sh list\n\n# Remove a contact\n~/clawd/skills/mediator/scripts/mediator.sh remove \"Ex Partner\"\n\nConfiguration\n\nConfig lives at ~/.clawdbot/mediator.yaml:\n\nmediator:\n  # Global settings\n  archive_originals: true      # Archive raw messages after processing\n  notify_channel: telegram     # Where to send summaries (telegram|slack|imessage)\n  \n  contacts:\n    - name: \"Ex Partner\"\n      email: \"ex@email.com\"\n      phone: \"+15551234567\"\n      channels: [email, imessage]\n      mode: intercept          # intercept | assist\n      summarize: facts-only    # facts-only | neutral | full\n      respond: draft           # draft | auto (dangerous)\n      \n    - name: \"Difficult Client\"  \n      email: \"client@company.com\"\n      channels: [email]\n      mode: assist             # Don't hide originals, just help respond\n      summarize: neutral\n      respond: draft\n\nModes\nintercept: Archive/hide original, only show summary. User never sees raw emotional content.\nassist: Show original but also provide summary and response suggestions.\nSummarize Options\nfacts-only: Extract only actionable items, requests, deadlines. No emotion.\nneutral: Rewrite the message in neutral tone, preserving all content.\nfull: Show everything but flag emotional/manipulative language.\nRespond Options\ndraft: Generate suggested response, wait for approval before sending.\nauto: Automatically respond (use with extreme caution).\nHow It Works\nEmail Flow\nGmail Pub/Sub notification arrives (real-time)\nCheck if sender matches any configured contact\nIf match:\nFetch full email content\nProcess through LLM to extract facts/strip emotion\nArchive original (apply \"Mediator/Raw\" label, mark read)\nSend summary to configured notify channel\nIf response needed, draft one\niMessage Flow\nimsg watch monitors for new messages\nCheck if sender matches configured contact\nIf match:\nProcess message content\nSend summary to notify channel\nDraft response if requested\nScripts\nmediator.sh - Main CLI wrapper\nprocess-email.py - Email processing logic\nprocess-imessage.py - iMessage processing logic\nsummarize.py - LLM-based content analysis and summarization\nIntegration\nHeartbeat Check\n\nAdd to HEARTBEAT.md:\n\n## Mediator Check\n~/clawd/skills/mediator/scripts/mediator.sh check\n\nCron (for more frequent checking)\n# Check every 5 minutes during business hours\n*/5 9-18 * * 1-5 ~/clawd/skills/mediator/scripts/mediator.sh check\n\nSafety Notes\nNever auto-respond to legal, financial, or child-related messages\nOriginal messages are archived, not deleted (recoverable)\nAll actions logged to ~/.clawdbot/logs/mediator.log\nReview and adjust prompts if summaries miss important context\nExample Output\n\nOriginal email:\n\nI can't BELIEVE you would do this to me AGAIN. After everything I've done for you!!! You NEVER think about anyone but yourself. I need you to pick up the kids at 3pm on Saturday and if you can't even do THAT then I don't know what to say anymore.\n\nMediator summary:\n\nFrom: Ex Partner Channel: Email\nAction Required: Yes\n\nRequest: Pick up kids at 3pm Saturday\n\nSuggested response: \"Confirmed. I'll pick up the kids at 3pm on Saturday.\"\n\nSee references/prompts.md for the LLM prompts used in processing."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/dylntrnr/mediator",
    "publisherUrl": "https://clawhub.ai/dylntrnr/mediator",
    "owner": "dylntrnr",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/mediator",
    "downloadUrl": "https://openagent3.xyz/downloads/mediator",
    "agentUrl": "https://openagent3.xyz/skills/mediator/agent",
    "manifestUrl": "https://openagent3.xyz/skills/mediator/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/mediator/agent.md"
  }
}