{
  "schemaVersion": "1.0",
  "item": {
    "slug": "doppleganger",
    "name": "Doppleganger",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/RuneweaverStudios/doppleganger",
    "canonicalUrl": "https://clawhub.ai/RuneweaverStudios/doppleganger",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/doppleganger",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=doppleganger",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "_meta.json",
      "config.json",
      "scripts/doppleganger.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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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/doppleganger"
    },
    "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/doppleganger",
    "agentPageUrl": "https://openagent3.xyz/skills/doppleganger/agent",
    "manifestUrl": "https://openagent3.xyz/skills/doppleganger/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/doppleganger/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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Description",
        "body": "Prevents duplicate subagent sessions running the same task. Saves tokens and reduces lag—no more \"multiple Spidermen\" doing the same work."
      },
      {
        "title": "Doppleganger",
        "body": "One task, one agent. Doppleganger stops duplicate subagent sessions from running the same task. That prevents token overspend, UI lag, and the chaos of five identical \"task completed\" announcements."
      },
      {
        "title": "Usage",
        "body": "The orchestrator already runs a duplicate check before sessions_spawn (see delegate rule); Doppleganger is the named skill for that behavior.\nUser says: \"prevent duplicate agents\", \"stop dopplegangers\", \"why are so many agents doing the same thing?\"\nYou want a single entry point to check whether a task is already running before spawning.\n\npython3 /Users/ghost/.openclaw/workspace/skills/doppleganger/scripts/doppleganger.py check \"<task string>\" [--json]\npython3 /Users/ghost/.openclaw/workspace/skills/doppleganger/scripts/doppleganger.py guard --task \"<task>\" [--json]\n\nJSON output:\n\n{\"duplicate\": false, \"doppleganger_ok\": true} → safe to spawn.\n{\"duplicate\": true, \"reason\": \"running\", \"sessionId\": \"...\", \"key\": \"...\", \"doppleganger_ok\": true} → do not spawn; reply that the task is already running.\n\nExit codes: 0 = no duplicate (or check ok). 1 = error. 2 = duplicate detected."
      },
      {
        "title": "What it does",
        "body": "check / guard — Given a task string (the same one you would pass to sessions_spawn), returns whether that task is already running. If yes, the orchestrator must not spawn again.\nUses the subagent-tracker's check-duplicate under the hood (one source of truth for runs/sessions)."
      },
      {
        "title": "Orchestrator",
        "body": "The delegate rule runs a duplicate check before every sessions_spawn; that check can be implemented by calling Doppleganger (or subagent-tracker check-duplicate) with the router's task string. If duplicate: true, do not call sessions_spawn."
      },
      {
        "title": "Name",
        "body": "\"Doppleganger\" = the duplicate agent doing the same thing. One Spiderman is enough."
      }
    ],
    "body": "Doppleganger\nDescription\n\nPrevents duplicate subagent sessions running the same task. Saves tokens and reduces lag—no more \"multiple Spidermen\" doing the same work.\n\nDoppleganger\n\nOne task, one agent. Doppleganger stops duplicate subagent sessions from running the same task. That prevents token overspend, UI lag, and the chaos of five identical \"task completed\" announcements.\n\nUsage\nThe orchestrator already runs a duplicate check before sessions_spawn (see delegate rule); Doppleganger is the named skill for that behavior.\nUser says: \"prevent duplicate agents\", \"stop dopplegangers\", \"why are so many agents doing the same thing?\"\nYou want a single entry point to check whether a task is already running before spawning.\npython3 /Users/ghost/.openclaw/workspace/skills/doppleganger/scripts/doppleganger.py check \"<task string>\" [--json]\npython3 /Users/ghost/.openclaw/workspace/skills/doppleganger/scripts/doppleganger.py guard --task \"<task>\" [--json]\n\n\nJSON output:\n\n{\"duplicate\": false, \"doppleganger_ok\": true} → safe to spawn.\n{\"duplicate\": true, \"reason\": \"running\", \"sessionId\": \"...\", \"key\": \"...\", \"doppleganger_ok\": true} → do not spawn; reply that the task is already running.\n\nExit codes: 0 = no duplicate (or check ok). 1 = error. 2 = duplicate detected.\n\nWhat it does\ncheck / guard — Given a task string (the same one you would pass to sessions_spawn), returns whether that task is already running. If yes, the orchestrator must not spawn again.\nUses the subagent-tracker's check-duplicate under the hood (one source of truth for runs/sessions).\nOrchestrator\n\nThe delegate rule runs a duplicate check before every sessions_spawn; that check can be implemented by calling Doppleganger (or subagent-tracker check-duplicate) with the router's task string. If duplicate: true, do not call sessions_spawn.\n\nName\n\n\"Doppleganger\" = the duplicate agent doing the same thing. One Spiderman is enough."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/RuneweaverStudios/doppleganger",
    "publisherUrl": "https://clawhub.ai/RuneweaverStudios/doppleganger",
    "owner": "RuneweaverStudios",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/doppleganger",
    "downloadUrl": "https://openagent3.xyz/downloads/doppleganger",
    "agentUrl": "https://openagent3.xyz/skills/doppleganger/agent",
    "manifestUrl": "https://openagent3.xyz/skills/doppleganger/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/doppleganger/agent.md"
  }
}