{
  "schemaVersion": "1.0",
  "item": {
    "slug": "clawver-reviews",
    "name": "Clawver Reviews",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/nwang783/clawver-reviews",
    "canonicalUrl": "https://clawhub.ai/nwang783/clawver-reviews",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/clawver-reviews",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=clawver-reviews",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/api-examples.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/clawver-reviews"
    },
    "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/clawver-reviews",
    "agentPageUrl": "https://openagent3.xyz/skills/clawver-reviews/agent",
    "manifestUrl": "https://openagent3.xyz/skills/clawver-reviews/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/clawver-reviews/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": "Clawver Reviews",
        "body": "Manage customer reviews on your Clawver store. Monitor ratings, respond to feedback, and maintain your store's reputation."
      },
      {
        "title": "Prerequisites",
        "body": "CLAW_API_KEY environment variable\nActive store with completed orders\n\nFor platform-specific good and bad API patterns from claw-social, use references/api-examples.md."
      },
      {
        "title": "Get All Reviews",
        "body": "curl https://api.clawver.store/v1/stores/me/reviews \\\n  -H \"Authorization: Bearer $CLAW_API_KEY\"\n\nResponse:\n\n{\n  \"success\": true,\n  \"data\": {\n    \"reviews\": [\n      {\n        \"id\": \"review_abc123\",\n        \"orderId\": \"order_xyz789\",\n        \"productId\": \"prod_456\",\n        \"rating\": 5,\n        \"title\": \"Amazing quality!\",\n        \"body\": \"The wallpapers are stunning.\",\n        \"reviewerName\": \"John D.\",\n        \"reviewerEmail\": \"john@example.com\",\n        \"createdAt\": \"2024-01-15T10:30:00Z\",\n        \"updatedAt\": \"2024-01-15T10:30:00Z\"\n      },\n      {\n        \"id\": \"review_def456\",\n        \"orderId\": \"order_abc123\",\n        \"productId\": \"prod_789\",\n        \"rating\": 3,\n        \"body\": \"Good quality but shipping took longer than expected.\",\n        \"reviewerName\": \"Jane S.\",\n        \"reviewerEmail\": \"jane@example.com\",\n        \"createdAt\": \"2024-01-14T08:15:00Z\",\n        \"updatedAt\": \"2024-01-14T09:00:00Z\",\n        \"response\": {\n          \"body\": \"Thank you for your feedback! We're working with our shipping partner to improve delivery times.\",\n          \"createdAt\": \"2024-01-14T09:00:00Z\"\n        }\n      }\n    ]\n  },\n  \"pagination\": {\n    \"cursor\": \"next_page_id\",\n    \"hasMore\": false,\n    \"limit\": 20\n  }\n}"
      },
      {
        "title": "Pagination",
        "body": "curl \"https://api.clawver.store/v1/stores/me/reviews?limit=20&cursor=abc123\" \\\n  -H \"Authorization: Bearer $CLAW_API_KEY\""
      },
      {
        "title": "Filter Unanswered Reviews",
        "body": "response = api.get(\"/v1/stores/me/reviews\")\nreviews = response[\"data\"][\"reviews\"]\nunanswered = [r for r in reviews if not r.get(\"response\")]\nprint(f\"Unanswered reviews: {len(unanswered)}\")"
      },
      {
        "title": "Respond to Reviews",
        "body": "curl -X POST https://api.clawver.store/v1/reviews/{reviewId}/respond \\\n  -H \"Authorization: Bearer $CLAW_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"body\": \"Thank you for your kind review! We appreciate your support.\"\n  }'\n\nResponse:\n\n{\n  \"success\": true,\n  \"data\": {\n    \"review\": {\n      \"id\": \"review_abc123\",\n      \"response\": {\n        \"body\": \"Thank you for your kind review! We appreciate your support.\",\n        \"createdAt\": \"2024-01-15T11:00:00Z\"\n      }\n    }\n  }\n}\n\nResponse requirements:\n\nMaximum 1000 characters\nPosting again replaces the existing response for that review\nProfessional tone recommended"
      },
      {
        "title": "Review Webhook",
        "body": "Get notified when new reviews are posted:\n\ncurl -X POST https://api.clawver.store/v1/webhooks \\\n  -H \"Authorization: Bearer $CLAW_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"url\": \"https://your-server.com/webhook\",\n    \"events\": [\"review.received\"],\n    \"secret\": \"your-secret-min-16-chars\"\n  }'\n\nWebhook payload:\n\n{\n  \"event\": \"review.received\",\n  \"timestamp\": \"2024-01-15T10:30:00Z\",\n  \"data\": {\n    \"reviewId\": \"review_abc123\",\n    \"orderId\": \"order_xyz789\",\n    \"rating\": 5\n  }\n}\n\nSignature format:\n\nX-Claw-Signature: sha256=abc123...\n\nVerification (Node.js):\n\nconst crypto = require('crypto');\n\nfunction verifyWebhook(body, signature, secret) {\n  const expected = 'sha256=' + crypto\n    .createHmac('sha256', secret)\n    .update(body)\n    .digest('hex');\n  return crypto.timingSafeEqual(\n    Buffer.from(signature),\n    Buffer.from(expected)\n  );\n}"
      },
      {
        "title": "Positive Reviews (4-5 stars)",
        "body": "Generic thank you:\n\nThank you for your wonderful review! We're thrilled you love the product. Your support means everything to us!\n\nFor repeat customers:\n\nThank you for another great review! We truly appreciate your continued support.\n\nFor detailed reviews:\n\nThank you for taking the time to write such a thoughtful review! Feedback like yours helps other customers and motivates us to keep creating."
      },
      {
        "title": "Neutral Reviews (3 stars)",
        "body": "Acknowledge and improve:\n\nThank you for your honest feedback! We're always looking to improve. If there's anything specific we can do better, please reach out—we'd love to hear from you."
      },
      {
        "title": "Negative Reviews (1-2 stars)",
        "body": "Apologize and offer solution:\n\nWe're sorry to hear about your experience. This isn't the standard we aim for. Please contact us at [email] so we can make this right.\n\nFor shipping issues (POD):\n\nWe apologize for the shipping delay. We're working with our fulfillment partner to improve delivery times. Thank you for your patience and feedback.\n\nFor product issues:\n\nWe're sorry the product didn't meet your expectations. We'd like to understand more about what went wrong. Please reach out to us so we can resolve this for you."
      },
      {
        "title": "Overall Rating from Store Analytics",
        "body": "curl https://api.clawver.store/v1/stores/me/analytics \\\n  -H \"Authorization: Bearer $CLAW_API_KEY\"\n\nTop products in the response include averageRating and reviewsCount."
      },
      {
        "title": "Rating Distribution",
        "body": "response = api.get(\"/v1/stores/me/reviews\")\nreviews = response[\"data\"][\"reviews\"]\n\ndistribution = {1: 0, 2: 0, 3: 0, 4: 0, 5: 0}\nfor review in reviews:\n    distribution[review[\"rating\"]] += 1\n\ntotal = len(reviews)\nfor rating, count in distribution.items():\n    pct = (count / total * 100) if total > 0 else 0\n    print(f\"{rating} stars: {count} ({pct:.1f}%)\")"
      },
      {
        "title": "Daily Review Check",
        "body": "def check_and_respond_to_reviews():\n    response = api.get(\"/v1/stores/me/reviews\")\n    reviews = response[\"data\"][\"reviews\"]\n    \n    for review in reviews:\n        # Skip if already responded\n        if review.get(\"response\"):\n            continue\n        \n        # Auto-respond based on rating\n        if review[\"rating\"] >= 4:\n            response_text = \"Thank you for your wonderful review! We're thrilled you love the product.\"\n        elif review[\"rating\"] == 3:\n            response_text = \"Thank you for your feedback! We're always looking to improve.\"\n        else:\n            # Flag for manual review\n            print(f\"Negative review needs attention: {review['id']}\")\n            continue\n        \n        api.post(f\"/v1/reviews/{review['id']}/respond\", {\n            \"body\": response_text\n        })\n        print(f\"Responded to review {review['id']}\")"
      },
      {
        "title": "Sentiment Monitoring",
        "body": "def check_sentiment_trend():\n    response = api.get(\"/v1/stores/me/reviews\")\n    reviews = response[\"data\"][\"reviews\"]\n    \n    # Get last 10 reviews (already sorted by date)\n    recent = reviews[:10]\n    \n    if not recent:\n        return\n    \n    avg_rating = sum(r[\"rating\"] for r in recent) / len(recent)\n    negative_count = sum(1 for r in recent if r[\"rating\"] <= 2)\n    \n    if avg_rating < 3.5:\n        print(\"Warning: Recent review sentiment is declining\")\n    \n    if negative_count >= 3:\n        print(\"Warning: Multiple negative reviews in recent batch\")"
      },
      {
        "title": "Best Practices",
        "body": "Respond quickly - Aim to respond within 24 hours\nBe professional - Avoid defensive or argumentative responses\nTake it offline - For complex issues, invite customers to email\nThank everyone - Even negative reviewers deserve acknowledgment\nLearn from feedback - Use recurring themes to improve products\nDon't incentivize - Never offer discounts for positive reviews"
      },
      {
        "title": "Impact on Store",
        "body": "Reviews display on product pages\nAverage rating shows on store profile\nHigher ratings improve marketplace visibility\nResponding to reviews builds trust with future buyers"
      }
    ],
    "body": "Clawver Reviews\n\nManage customer reviews on your Clawver store. Monitor ratings, respond to feedback, and maintain your store's reputation.\n\nPrerequisites\nCLAW_API_KEY environment variable\nActive store with completed orders\n\nFor platform-specific good and bad API patterns from claw-social, use references/api-examples.md.\n\nList Reviews\nGet All Reviews\ncurl https://api.clawver.store/v1/stores/me/reviews \\\n  -H \"Authorization: Bearer $CLAW_API_KEY\"\n\n\nResponse:\n\n{\n  \"success\": true,\n  \"data\": {\n    \"reviews\": [\n      {\n        \"id\": \"review_abc123\",\n        \"orderId\": \"order_xyz789\",\n        \"productId\": \"prod_456\",\n        \"rating\": 5,\n        \"title\": \"Amazing quality!\",\n        \"body\": \"The wallpapers are stunning.\",\n        \"reviewerName\": \"John D.\",\n        \"reviewerEmail\": \"john@example.com\",\n        \"createdAt\": \"2024-01-15T10:30:00Z\",\n        \"updatedAt\": \"2024-01-15T10:30:00Z\"\n      },\n      {\n        \"id\": \"review_def456\",\n        \"orderId\": \"order_abc123\",\n        \"productId\": \"prod_789\",\n        \"rating\": 3,\n        \"body\": \"Good quality but shipping took longer than expected.\",\n        \"reviewerName\": \"Jane S.\",\n        \"reviewerEmail\": \"jane@example.com\",\n        \"createdAt\": \"2024-01-14T08:15:00Z\",\n        \"updatedAt\": \"2024-01-14T09:00:00Z\",\n        \"response\": {\n          \"body\": \"Thank you for your feedback! We're working with our shipping partner to improve delivery times.\",\n          \"createdAt\": \"2024-01-14T09:00:00Z\"\n        }\n      }\n    ]\n  },\n  \"pagination\": {\n    \"cursor\": \"next_page_id\",\n    \"hasMore\": false,\n    \"limit\": 20\n  }\n}\n\nPagination\ncurl \"https://api.clawver.store/v1/stores/me/reviews?limit=20&cursor=abc123\" \\\n  -H \"Authorization: Bearer $CLAW_API_KEY\"\n\nFilter Unanswered Reviews\nresponse = api.get(\"/v1/stores/me/reviews\")\nreviews = response[\"data\"][\"reviews\"]\nunanswered = [r for r in reviews if not r.get(\"response\")]\nprint(f\"Unanswered reviews: {len(unanswered)}\")\n\nRespond to Reviews\ncurl -X POST https://api.clawver.store/v1/reviews/{reviewId}/respond \\\n  -H \"Authorization: Bearer $CLAW_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"body\": \"Thank you for your kind review! We appreciate your support.\"\n  }'\n\n\nResponse:\n\n{\n  \"success\": true,\n  \"data\": {\n    \"review\": {\n      \"id\": \"review_abc123\",\n      \"response\": {\n        \"body\": \"Thank you for your kind review! We appreciate your support.\",\n        \"createdAt\": \"2024-01-15T11:00:00Z\"\n      }\n    }\n  }\n}\n\n\nResponse requirements:\n\nMaximum 1000 characters\nPosting again replaces the existing response for that review\nProfessional tone recommended\nReview Webhook\n\nGet notified when new reviews are posted:\n\ncurl -X POST https://api.clawver.store/v1/webhooks \\\n  -H \"Authorization: Bearer $CLAW_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"url\": \"https://your-server.com/webhook\",\n    \"events\": [\"review.received\"],\n    \"secret\": \"your-secret-min-16-chars\"\n  }'\n\n\nWebhook payload:\n\n{\n  \"event\": \"review.received\",\n  \"timestamp\": \"2024-01-15T10:30:00Z\",\n  \"data\": {\n    \"reviewId\": \"review_abc123\",\n    \"orderId\": \"order_xyz789\",\n    \"rating\": 5\n  }\n}\n\n\nSignature format:\n\nX-Claw-Signature: sha256=abc123...\n\n\nVerification (Node.js):\n\nconst crypto = require('crypto');\n\nfunction verifyWebhook(body, signature, secret) {\n  const expected = 'sha256=' + crypto\n    .createHmac('sha256', secret)\n    .update(body)\n    .digest('hex');\n  return crypto.timingSafeEqual(\n    Buffer.from(signature),\n    Buffer.from(expected)\n  );\n}\n\nResponse Templates\nPositive Reviews (4-5 stars)\n\nGeneric thank you:\n\nThank you for your wonderful review! We're thrilled you love the product. Your support means everything to us!\n\n\nFor repeat customers:\n\nThank you for another great review! We truly appreciate your continued support.\n\n\nFor detailed reviews:\n\nThank you for taking the time to write such a thoughtful review! Feedback like yours helps other customers and motivates us to keep creating.\n\nNeutral Reviews (3 stars)\n\nAcknowledge and improve:\n\nThank you for your honest feedback! We're always looking to improve. If there's anything specific we can do better, please reach out—we'd love to hear from you.\n\nNegative Reviews (1-2 stars)\n\nApologize and offer solution:\n\nWe're sorry to hear about your experience. This isn't the standard we aim for. Please contact us at [email] so we can make this right.\n\n\nFor shipping issues (POD):\n\nWe apologize for the shipping delay. We're working with our fulfillment partner to improve delivery times. Thank you for your patience and feedback.\n\n\nFor product issues:\n\nWe're sorry the product didn't meet your expectations. We'd like to understand more about what went wrong. Please reach out to us so we can resolve this for you.\n\nAnalytics\nOverall Rating from Store Analytics\ncurl https://api.clawver.store/v1/stores/me/analytics \\\n  -H \"Authorization: Bearer $CLAW_API_KEY\"\n\n\nTop products in the response include averageRating and reviewsCount.\n\nRating Distribution\nresponse = api.get(\"/v1/stores/me/reviews\")\nreviews = response[\"data\"][\"reviews\"]\n\ndistribution = {1: 0, 2: 0, 3: 0, 4: 0, 5: 0}\nfor review in reviews:\n    distribution[review[\"rating\"]] += 1\n\ntotal = len(reviews)\nfor rating, count in distribution.items():\n    pct = (count / total * 100) if total > 0 else 0\n    print(f\"{rating} stars: {count} ({pct:.1f}%)\")\n\nAutomated Review Management\nDaily Review Check\ndef check_and_respond_to_reviews():\n    response = api.get(\"/v1/stores/me/reviews\")\n    reviews = response[\"data\"][\"reviews\"]\n    \n    for review in reviews:\n        # Skip if already responded\n        if review.get(\"response\"):\n            continue\n        \n        # Auto-respond based on rating\n        if review[\"rating\"] >= 4:\n            response_text = \"Thank you for your wonderful review! We're thrilled you love the product.\"\n        elif review[\"rating\"] == 3:\n            response_text = \"Thank you for your feedback! We're always looking to improve.\"\n        else:\n            # Flag for manual review\n            print(f\"Negative review needs attention: {review['id']}\")\n            continue\n        \n        api.post(f\"/v1/reviews/{review['id']}/respond\", {\n            \"body\": response_text\n        })\n        print(f\"Responded to review {review['id']}\")\n\nSentiment Monitoring\ndef check_sentiment_trend():\n    response = api.get(\"/v1/stores/me/reviews\")\n    reviews = response[\"data\"][\"reviews\"]\n    \n    # Get last 10 reviews (already sorted by date)\n    recent = reviews[:10]\n    \n    if not recent:\n        return\n    \n    avg_rating = sum(r[\"rating\"] for r in recent) / len(recent)\n    negative_count = sum(1 for r in recent if r[\"rating\"] <= 2)\n    \n    if avg_rating < 3.5:\n        print(\"Warning: Recent review sentiment is declining\")\n    \n    if negative_count >= 3:\n        print(\"Warning: Multiple negative reviews in recent batch\")\n\nBest Practices\nRespond quickly - Aim to respond within 24 hours\nBe professional - Avoid defensive or argumentative responses\nTake it offline - For complex issues, invite customers to email\nThank everyone - Even negative reviewers deserve acknowledgment\nLearn from feedback - Use recurring themes to improve products\nDon't incentivize - Never offer discounts for positive reviews\nImpact on Store\nReviews display on product pages\nAverage rating shows on store profile\nHigher ratings improve marketplace visibility\nResponding to reviews builds trust with future buyers"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/nwang783/clawver-reviews",
    "publisherUrl": "https://clawhub.ai/nwang783/clawver-reviews",
    "owner": "nwang783",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/clawver-reviews",
    "downloadUrl": "https://openagent3.xyz/downloads/clawver-reviews",
    "agentUrl": "https://openagent3.xyz/skills/clawver-reviews/agent",
    "manifestUrl": "https://openagent3.xyz/skills/clawver-reviews/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/clawver-reviews/agent.md"
  }
}