{
  "schemaVersion": "1.0",
  "item": {
    "slug": "reddit-quote-carousel",
    "name": "Reddit Quote Carousel",
    "source": "tencent",
    "type": "skill",
    "category": "内容创作",
    "sourceUrl": "https://clawhub.ai/psyduckler/reddit-quote-carousel",
    "canonicalUrl": "https://clawhub.ai/psyduckler/reddit-quote-carousel",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/reddit-quote-carousel",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=reddit-quote-carousel",
    "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-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/reddit-quote-carousel"
    },
    "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/reddit-quote-carousel",
    "agentPageUrl": "https://openagent3.xyz/skills/reddit-quote-carousel/agent",
    "manifestUrl": "https://openagent3.xyz/skills/reddit-quote-carousel/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/reddit-quote-carousel/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": "Reddit Quote Carousel",
        "body": "Instagram carousel: cover + attraction slides with Reddit quotes, sourced from a popular-picks list."
      },
      {
        "title": "Trigger",
        "body": "Bernard says \"reddit-quote\" → use this skill."
      },
      {
        "title": "Parameters",
        "body": "destination (required): City/region (e.g. \"Barcelona\")\ncategory (required): What the picks are (e.g. \"Cheap Eats\", \"Hidden Gems\", \"Date Night Spots\")\npopular_picks_url (required): tabiji.ai popular-picks page URL to pull attractions + Reddit quotes from\nreddit_post_count (optional): Number of Reddit posts analyzed (for subtitle, e.g. \"150+ posts\"). Pull from the popular-picks page if available."
      },
      {
        "title": "Pipeline (3 chained sub-agents)",
        "body": "Working directory: /tmp/ig-reddit-quote/"
      },
      {
        "title": "Sub-agent 1: Scrape Picks + Find Photos",
        "body": "Fetch the popular-picks page via web_fetch to get:\n\nList of attractions (names)\nA compelling Reddit quote for each attraction (look for vivid, specific, personal quotes — not generic praise)\nThe subreddit each quote came from (e.g. \"r/london\", \"r/AskLondon\")\nTotal Reddit post count if shown on the page\n\n\n\nFind photos using instagram-photo-find workflow:\n\n1 hero photo for the destination (for cover slide)\n1 photo per attraction (for quote slides)\nFor each: web_search → download candidates → vision-score → keep best\n\n\n\nWrite manifest to /tmp/ig-reddit-quote/manifest.json:\n\n{\n  \"destination\": \"Barcelona\",\n  \"category\": \"Cheap Eats\",\n  \"reddit_post_count\": 150,\n  \"cover_photo\": \"/tmp/ig-reddit-quote/cover-best.jpg\",\n  \"slides\": [\n    {\n      \"name\": \"Bar Cañete\",\n      \"quote\": \"Went here on a random Tuesday and had the best patatas bravas of my life. The old guy next to me ordered for me and everything was incredible.\",\n      \"subreddit\": \"r/barcelona\",\n      \"photo\": \"/tmp/ig-reddit-quote/bar-canete-best.jpg\",\n      \"source_url\": \"instagram.com/p/XXX/\"\n    }\n  ]\n}"
      },
      {
        "title": "Sub-agent 2: Text Overlays",
        "body": "Read manifest. Create overlays using instagram-photo-text-overlay skill.\n\nSlide 1 (Cover) — clean style:\n\npython3 /Users/psy/.openclaw/workspace/skills/instagram-photo-text-overlay/scripts/overlay.py \\\n  --input /tmp/ig-reddit-quote/cover-best.jpg \\\n  --output /tmp/ig-reddit-quote/slide-1.jpg \\\n  --title \"Top {COUNT} {CATEGORY} in {DESTINATION}\" \\\n  --subtitle \"Insider Takes from Reddit ({N}+ posts)\" \\\n  --style clean --watermark \"tabiji.ai\"\n\nWhere:\n\n{COUNT} = number of attractions\n{CATEGORY} = category (e.g. \"Cheap Eats\")\n{DESTINATION} = destination name\n{N} = reddit_post_count from manifest\n\nSlides 2+ — quote style, one per attraction:\n\npython3 /Users/psy/.openclaw/workspace/skills/instagram-photo-text-overlay/scripts/overlay.py \\\n  --input /tmp/ig-reddit-quote/{slug}-best.jpg \\\n  --output /tmp/ig-reddit-quote/slide-{N}.jpg \\\n  --title \"{ATTRACTION_NAME}\" \\\n  --quote \"{REDDIT_QUOTE}\" \\\n  --author \"{SUBREDDIT}\" \\\n  --style quote --watermark \"tabiji.ai\"\n\nOutput: slides at /tmp/ig-reddit-quote/slide-{1-N}.jpg"
      },
      {
        "title": "Sub-agent 3: Publish to Instagram",
        "body": "Same as create-instagram-carousel-post Sub-agent 3:\n\nHost images in tabiji repo (img/instagram/)\nCreate carousel item containers\nCreate carousel container with caption\nPublish\nCleanup hosted images + local temp files"
      },
      {
        "title": "Caption Template",
        "body": "{flag_emoji} Top {COUNT} {CATEGORY} in {DESTINATION}\n\nReal recommendations from {N}+ Reddit posts 🧵\n\n📍 Swipe for the spots + what Redditors actually said:\n1. {Attraction 1}\n2. {Attraction 2}\n...\n\nFull list with maps, prices & more Reddit recs 👉 {POPULAR_PICKS_URL}\n\n💬 {PROVOCATIVE_QUESTION — e.g. \"What's the most overrated restaurant you've been to abroad?\" or \"Would you trust a stranger's Reddit rec over a Michelin star?\"}\n\n#{destination} #{category_tag} #redditfinds #traveltips #foodietravel #localfavorites #tabiji"
      },
      {
        "title": "Tips",
        "body": "Pick quotes that are specific and personal — \"best patatas bravas of my life\" beats \"this place is great\"\nKeep quotes under ~120 chars so they render well on the slide\nIf a quote is too long, trim it but keep the vivid part\nThe cover title should feel like a listicle: \"Top 7 Cheap Eats in Barcelona\""
      }
    ],
    "body": "Reddit Quote Carousel\n\nInstagram carousel: cover + attraction slides with Reddit quotes, sourced from a popular-picks list.\n\nTrigger\n\nBernard says \"reddit-quote\" → use this skill.\n\nParameters\ndestination (required): City/region (e.g. \"Barcelona\")\ncategory (required): What the picks are (e.g. \"Cheap Eats\", \"Hidden Gems\", \"Date Night Spots\")\npopular_picks_url (required): tabiji.ai popular-picks page URL to pull attractions + Reddit quotes from\nreddit_post_count (optional): Number of Reddit posts analyzed (for subtitle, e.g. \"150+ posts\"). Pull from the popular-picks page if available.\nPipeline (3 chained sub-agents)\n\nWorking directory: /tmp/ig-reddit-quote/\n\nSub-agent 1: Scrape Picks + Find Photos\n\nFetch the popular-picks page via web_fetch to get:\n\nList of attractions (names)\nA compelling Reddit quote for each attraction (look for vivid, specific, personal quotes — not generic praise)\nThe subreddit each quote came from (e.g. \"r/london\", \"r/AskLondon\")\nTotal Reddit post count if shown on the page\n\nFind photos using instagram-photo-find workflow:\n\n1 hero photo for the destination (for cover slide)\n1 photo per attraction (for quote slides)\nFor each: web_search → download candidates → vision-score → keep best\n\nWrite manifest to /tmp/ig-reddit-quote/manifest.json:\n\n{\n  \"destination\": \"Barcelona\",\n  \"category\": \"Cheap Eats\",\n  \"reddit_post_count\": 150,\n  \"cover_photo\": \"/tmp/ig-reddit-quote/cover-best.jpg\",\n  \"slides\": [\n    {\n      \"name\": \"Bar Cañete\",\n      \"quote\": \"Went here on a random Tuesday and had the best patatas bravas of my life. The old guy next to me ordered for me and everything was incredible.\",\n      \"subreddit\": \"r/barcelona\",\n      \"photo\": \"/tmp/ig-reddit-quote/bar-canete-best.jpg\",\n      \"source_url\": \"instagram.com/p/XXX/\"\n    }\n  ]\n}\n\nSub-agent 2: Text Overlays\n\nRead manifest. Create overlays using instagram-photo-text-overlay skill.\n\nSlide 1 (Cover) — clean style:\n\npython3 /Users/psy/.openclaw/workspace/skills/instagram-photo-text-overlay/scripts/overlay.py \\\n  --input /tmp/ig-reddit-quote/cover-best.jpg \\\n  --output /tmp/ig-reddit-quote/slide-1.jpg \\\n  --title \"Top {COUNT} {CATEGORY} in {DESTINATION}\" \\\n  --subtitle \"Insider Takes from Reddit ({N}+ posts)\" \\\n  --style clean --watermark \"tabiji.ai\"\n\n\nWhere:\n\n{COUNT} = number of attractions\n{CATEGORY} = category (e.g. \"Cheap Eats\")\n{DESTINATION} = destination name\n{N} = reddit_post_count from manifest\n\nSlides 2+ — quote style, one per attraction:\n\npython3 /Users/psy/.openclaw/workspace/skills/instagram-photo-text-overlay/scripts/overlay.py \\\n  --input /tmp/ig-reddit-quote/{slug}-best.jpg \\\n  --output /tmp/ig-reddit-quote/slide-{N}.jpg \\\n  --title \"{ATTRACTION_NAME}\" \\\n  --quote \"{REDDIT_QUOTE}\" \\\n  --author \"{SUBREDDIT}\" \\\n  --style quote --watermark \"tabiji.ai\"\n\n\nOutput: slides at /tmp/ig-reddit-quote/slide-{1-N}.jpg\n\nSub-agent 3: Publish to Instagram\n\nSame as create-instagram-carousel-post Sub-agent 3:\n\nHost images in tabiji repo (img/instagram/)\nCreate carousel item containers\nCreate carousel container with caption\nPublish\nCleanup hosted images + local temp files\nCaption Template\n{flag_emoji} Top {COUNT} {CATEGORY} in {DESTINATION}\n\nReal recommendations from {N}+ Reddit posts 🧵\n\n📍 Swipe for the spots + what Redditors actually said:\n1. {Attraction 1}\n2. {Attraction 2}\n...\n\nFull list with maps, prices & more Reddit recs 👉 {POPULAR_PICKS_URL}\n\n💬 {PROVOCATIVE_QUESTION — e.g. \"What's the most overrated restaurant you've been to abroad?\" or \"Would you trust a stranger's Reddit rec over a Michelin star?\"}\n\n#{destination} #{category_tag} #redditfinds #traveltips #foodietravel #localfavorites #tabiji\n\nTips\nPick quotes that are specific and personal — \"best patatas bravas of my life\" beats \"this place is great\"\nKeep quotes under ~120 chars so they render well on the slide\nIf a quote is too long, trim it but keep the vivid part\nThe cover title should feel like a listicle: \"Top 7 Cheap Eats in Barcelona\""
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/psyduckler/reddit-quote-carousel",
    "publisherUrl": "https://clawhub.ai/psyduckler/reddit-quote-carousel",
    "owner": "psyduckler",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/reddit-quote-carousel",
    "downloadUrl": "https://openagent3.xyz/downloads/reddit-quote-carousel",
    "agentUrl": "https://openagent3.xyz/skills/reddit-quote-carousel/agent",
    "manifestUrl": "https://openagent3.xyz/skills/reddit-quote-carousel/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/reddit-quote-carousel/agent.md"
  }
}