{
  "schemaVersion": "1.0",
  "item": {
    "slug": "wrike",
    "name": "Wrike",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/tallhamn/wrike",
    "canonicalUrl": "https://clawhub.ai/tallhamn/wrike",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/wrike",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=wrike",
    "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-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-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/wrike"
    },
    "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/wrike",
    "agentPageUrl": "https://openagent3.xyz/skills/wrike/agent",
    "manifestUrl": "https://openagent3.xyz/skills/wrike/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/wrike/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": "Wrike CLI",
        "body": "Manage Wrike tasks, projects, folders, and comments. All commands return JSON: {\"ok\": true, \"data\": ...} on success, {\"ok\": false, \"error\": \"...\"} on failure."
      },
      {
        "title": "Setup",
        "body": "claw-wrike config set --token <WRIKE_TOKEN>\n# Auto-detects US/EU data center. Token is stored in ~/.claw-wrike/config.json"
      },
      {
        "title": "Quick Reference",
        "body": "claw-wrike <entity> <command> [--flags]"
      },
      {
        "title": "Account & Spaces",
        "body": "claw-wrike account                          # Account info (name, root folder ID, etc.)\nclaw-wrike space list                       # List all spaces\nclaw-wrike space get --id <id>              # Get a space"
      },
      {
        "title": "Folders & Projects",
        "body": "Wrike treats folders and projects as the same entity. Projects are folders with extra properties (owners, dates, status).\n\nclaw-wrike folder list                      # List all folders (tree structure)\nclaw-wrike folder list --space <id>         # List folders in a space\nclaw-wrike folder list --parent <id>        # List child folders\nclaw-wrike folder get --id <id>             # Get folder details\n\nclaw-wrike folder create --parent <id> --title \"Folder name\"\nclaw-wrike folder create --parent <id> --title \"Project name\" --project\nclaw-wrike folder create --parent <id> --title \"Project name\" --project --owner <contactId> --start-date 2026-03-01 --end-date 2026-06-01\nclaw-wrike folder create --parent <id> --title \"Folder name\" --dry-run   # Preview without creating\n\nclaw-wrike folder update --id <id> --title \"New title\"\nclaw-wrike folder update --id <id> --description \"New description\"\nclaw-wrike folder update --id <id> --add-parent <folderId>              # Move into another parent\nclaw-wrike folder update --id <id> --remove-parent <folderId>           # Remove from a parent\nclaw-wrike folder update --id <id> --dry-run                            # Preview without updating\n\nclaw-wrike folder delete --id <id>                                      # Moves to recycle bin\nclaw-wrike folder delete --id <id> --dry-run                            # Preview without deleting"
      },
      {
        "title": "Tasks",
        "body": "claw-wrike task list                        # List tasks (default: 100, Active)\nclaw-wrike task list --folder <id>          # Tasks in a folder/project\nclaw-wrike task list --space <id>           # Tasks in a space\nclaw-wrike task list --status Active        # Filter: Active|Completed|Deferred|Cancelled\nclaw-wrike task list --assignee \"Jane\"      # Filter by assignee name\nclaw-wrike task list --importance High      # Filter: High|Normal|Low\nclaw-wrike task list --limit 20             # Limit results\n\nclaw-wrike task get --id <id>               # Full task details (description, custom fields, etc.)\n\nclaw-wrike task create --folder <id> --title \"Task name\"\nclaw-wrike task create --folder <id> --title \"Task name\" --assignee \"Jane\" --due 2026-03-01 --importance High\nclaw-wrike task create --folder <id> --title \"Task name\" --dry-run   # Preview without creating\n\nclaw-wrike task update --id <id> --title \"New title\"\nclaw-wrike task update --id <id> --add-assignee \"Jane\"\nclaw-wrike task update --id <id> --remove-assignee \"Jane\"\nclaw-wrike task update --id <id> --due 2026-04-01 --importance Low\nclaw-wrike task update --id <id> --status <customStatusId>\nclaw-wrike task update --id <id> --dry-run                           # Preview without updating\n\nclaw-wrike task delete --id <id>                                     # Moves to recycle bin\nclaw-wrike task delete --id <id> --dry-run                           # Preview without deleting"
      },
      {
        "title": "Comments",
        "body": "claw-wrike comment list --task <id>         # List comments on a task\nclaw-wrike comment add --task <id> --text \"Comment text\"\nclaw-wrike comment update --id <id> --text \"Updated text\"\nclaw-wrike comment delete --id <id>"
      },
      {
        "title": "Contacts, Workflows, Custom Fields",
        "body": "claw-wrike contact list                     # All contacts (users) in the account\nclaw-wrike contact get --id <id>            # Single contact details\nclaw-wrike workflow list                    # Workflows with custom statuses\nclaw-wrike customfield list                 # All custom field definitions"
      },
      {
        "title": "Utilities",
        "body": "claw-wrike lookup --permalink <url>         # Resolve a Wrike permalink to task details\nclaw-wrike cache refresh                    # Force refresh cached contacts/workflows/fields\nclaw-wrike config show                      # Show current config (token masked)"
      },
      {
        "title": "Important Notes",
        "body": "IDs: Wrike API IDs are alphanumeric strings like IEABMHYCI5P7AYDW. They are NOT the numeric IDs in permalink URLs.\nAssignee resolution: Use names (\"Jane\", \"Jane Doe\") or IDs. Names are resolved via cached contacts.\nCustom statuses: Use claw-wrike workflow list to find custom status IDs, then pass them to --status.\nFolders = Projects: A project is a folder with a project property. Use folder commands for both.\nTasks can have multiple parents: A task can belong to multiple folders/projects.\nDry run: Use --dry-run on create/update commands to see the API call without executing it.\nRate limit: ~400 requests/minute. The CLI handles rate limiting and retries automatically."
      },
      {
        "title": "Before Any Operation",
        "body": "Use claw-wrike space list or claw-wrike folder list to find the right container ID.\nUse claw-wrike workflow list to understand available statuses before changing task status.\nUse claw-wrike task get --id <id> to read current state before updating."
      },
      {
        "title": "NEVER",
        "body": "Never guess task or folder IDs. Always look them up first.\nNever update tasks without reading their current state.\nNever bulk-modify tasks without user confirmation."
      }
    ],
    "body": "Wrike CLI\n\nManage Wrike tasks, projects, folders, and comments. All commands return JSON: {\"ok\": true, \"data\": ...} on success, {\"ok\": false, \"error\": \"...\"} on failure.\n\nSetup\nclaw-wrike config set --token <WRIKE_TOKEN>\n# Auto-detects US/EU data center. Token is stored in ~/.claw-wrike/config.json\n\nQuick Reference\nclaw-wrike <entity> <command> [--flags]\n\nAccount & Spaces\nclaw-wrike account                          # Account info (name, root folder ID, etc.)\nclaw-wrike space list                       # List all spaces\nclaw-wrike space get --id <id>              # Get a space\n\nFolders & Projects\n\nWrike treats folders and projects as the same entity. Projects are folders with extra properties (owners, dates, status).\n\nclaw-wrike folder list                      # List all folders (tree structure)\nclaw-wrike folder list --space <id>         # List folders in a space\nclaw-wrike folder list --parent <id>        # List child folders\nclaw-wrike folder get --id <id>             # Get folder details\n\nclaw-wrike folder create --parent <id> --title \"Folder name\"\nclaw-wrike folder create --parent <id> --title \"Project name\" --project\nclaw-wrike folder create --parent <id> --title \"Project name\" --project --owner <contactId> --start-date 2026-03-01 --end-date 2026-06-01\nclaw-wrike folder create --parent <id> --title \"Folder name\" --dry-run   # Preview without creating\n\nclaw-wrike folder update --id <id> --title \"New title\"\nclaw-wrike folder update --id <id> --description \"New description\"\nclaw-wrike folder update --id <id> --add-parent <folderId>              # Move into another parent\nclaw-wrike folder update --id <id> --remove-parent <folderId>           # Remove from a parent\nclaw-wrike folder update --id <id> --dry-run                            # Preview without updating\n\nclaw-wrike folder delete --id <id>                                      # Moves to recycle bin\nclaw-wrike folder delete --id <id> --dry-run                            # Preview without deleting\n\nTasks\nclaw-wrike task list                        # List tasks (default: 100, Active)\nclaw-wrike task list --folder <id>          # Tasks in a folder/project\nclaw-wrike task list --space <id>           # Tasks in a space\nclaw-wrike task list --status Active        # Filter: Active|Completed|Deferred|Cancelled\nclaw-wrike task list --assignee \"Jane\"      # Filter by assignee name\nclaw-wrike task list --importance High      # Filter: High|Normal|Low\nclaw-wrike task list --limit 20             # Limit results\n\nclaw-wrike task get --id <id>               # Full task details (description, custom fields, etc.)\n\nclaw-wrike task create --folder <id> --title \"Task name\"\nclaw-wrike task create --folder <id> --title \"Task name\" --assignee \"Jane\" --due 2026-03-01 --importance High\nclaw-wrike task create --folder <id> --title \"Task name\" --dry-run   # Preview without creating\n\nclaw-wrike task update --id <id> --title \"New title\"\nclaw-wrike task update --id <id> --add-assignee \"Jane\"\nclaw-wrike task update --id <id> --remove-assignee \"Jane\"\nclaw-wrike task update --id <id> --due 2026-04-01 --importance Low\nclaw-wrike task update --id <id> --status <customStatusId>\nclaw-wrike task update --id <id> --dry-run                           # Preview without updating\n\nclaw-wrike task delete --id <id>                                     # Moves to recycle bin\nclaw-wrike task delete --id <id> --dry-run                           # Preview without deleting\n\nComments\nclaw-wrike comment list --task <id>         # List comments on a task\nclaw-wrike comment add --task <id> --text \"Comment text\"\nclaw-wrike comment update --id <id> --text \"Updated text\"\nclaw-wrike comment delete --id <id>\n\nContacts, Workflows, Custom Fields\nclaw-wrike contact list                     # All contacts (users) in the account\nclaw-wrike contact get --id <id>            # Single contact details\nclaw-wrike workflow list                    # Workflows with custom statuses\nclaw-wrike customfield list                 # All custom field definitions\n\nUtilities\nclaw-wrike lookup --permalink <url>         # Resolve a Wrike permalink to task details\nclaw-wrike cache refresh                    # Force refresh cached contacts/workflows/fields\nclaw-wrike config show                      # Show current config (token masked)\n\nImportant Notes\nIDs: Wrike API IDs are alphanumeric strings like IEABMHYCI5P7AYDW. They are NOT the numeric IDs in permalink URLs.\nAssignee resolution: Use names (\"Jane\", \"Jane Doe\") or IDs. Names are resolved via cached contacts.\nCustom statuses: Use claw-wrike workflow list to find custom status IDs, then pass them to --status.\nFolders = Projects: A project is a folder with a project property. Use folder commands for both.\nTasks can have multiple parents: A task can belong to multiple folders/projects.\nDry run: Use --dry-run on create/update commands to see the API call without executing it.\nRate limit: ~400 requests/minute. The CLI handles rate limiting and retries automatically.\nBefore Any Operation\nUse claw-wrike space list or claw-wrike folder list to find the right container ID.\nUse claw-wrike workflow list to understand available statuses before changing task status.\nUse claw-wrike task get --id <id> to read current state before updating.\nNEVER\nNever guess task or folder IDs. Always look them up first.\nNever update tasks without reading their current state.\nNever bulk-modify tasks without user confirmation."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/tallhamn/wrike",
    "publisherUrl": "https://clawhub.ai/tallhamn/wrike",
    "owner": "tallhamn",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/wrike",
    "downloadUrl": "https://openagent3.xyz/downloads/wrike",
    "agentUrl": "https://openagent3.xyz/skills/wrike/agent",
    "manifestUrl": "https://openagent3.xyz/skills/wrike/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/wrike/agent.md"
  }
}