{
  "schemaVersion": "1.0",
  "item": {
    "slug": "x-articles",
    "name": "X Articles",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/NextFrontierBuilds/x-articles",
    "canonicalUrl": "https://clawhub.ai/NextFrontierBuilds/x-articles",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/x-articles",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=x-articles",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/viral-patterns.md",
      "scripts/format-for-x.sh",
      "scripts/publish-article.sh",
      "skill.json"
    ],
    "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/x-articles"
    },
    "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/x-articles",
    "agentPageUrl": "https://openagent3.xyz/skills/x-articles/agent",
    "manifestUrl": "https://openagent3.xyz/skills/x-articles/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/x-articles/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": "X Articles — Viral Long-Form for Twitter",
        "body": "Beat the algorithm. Create and publish X (Twitter) Articles with proven viral patterns.\n\nAI-powered formatting, hook patterns, and browser automation. Handles Draft.js quirks, embed limitations, and image uploads."
      },
      {
        "title": "Content Formatting Rules (CRITICAL)",
        "body": "X Articles uses Draft.js editor with specific quirks:\n\nLine breaks = paragraph breaks - Each newline creates a new paragraph block with spacing\nJoin sentences on ONE LINE - All sentences in the same paragraph must be on a single line\nUse plain text, not markdown - X Articles uses rich text, not markdown\nNo em dashes (—) - Replace with colons or rewrite sentences\n\nWrong:\n\nSentence one.\nSentence two.\nSentence three.\n\nRight:\n\nSentence one. Sentence two. Sentence three."
      },
      {
        "title": "Embed Limitation (IMPORTANT)",
        "body": "Embedded posts ALWAYS render at the END of the content block, not inline.\n\nWorkarounds:\n\nStructure article to reference \"see posts below\"\nAccept visual flow: text → text → embeds at bottom\nUse Insert > Posts menu (don't paste URLs)"
      },
      {
        "title": "Image Specs",
        "body": "TypeAspect RatioRecommended SizeCover/Header5:21792x716 or similarInline images16:9 or 4:31792x1024 (DALL-E HD)"
      },
      {
        "title": "The Template",
        "body": "HOOK (hit insecurity or opportunity)\n\nWHAT IT IS (1-2 paragraphs with social proof)\n\nWHY MOST PEOPLE WON'T DO IT (address objections)\n\nTHE [X]-MINUTE GUIDE\n- Step 1 (time estimate)\n- Step 2 (time estimate)\n- ...\n\nYOUR FIRST [N] WINS (immediate value)\n- Win 1: copy-paste example\n- Win 2: copy-paste example\n\nTHE COST (value comparison)\n\nWHAT TO DO AFTER (next steps)\n\nTHE WINDOW (urgency)\n\nCTA (soft or hard)"
      },
      {
        "title": "Hook Patterns That Work",
        "body": "Insecurity/FOMO:\n\neveryone's talking about X... and you're sitting there wondering if you missed the window\n\nBig Opportunity:\n\nthis is the biggest opportunity of our lifetime\n\nNews Hook:\n\nX just open sourced the algo. Here's what it means for you:\n\nRIP Pattern:\n\nRIP [profession]. This AI tool will [action] in seconds.\n\nWTF Pattern:\n\nWTF!! This AI Agent [does amazing thing]. Here's how:\n\nPersonal Story:\n\nWhen I was young, I was always drawn to people who..."
      },
      {
        "title": "CTA Patterns",
        "body": "Hard CTA (engagement bait):\n\nRT + follow + reply 'KEYWORD' and I'll send the cheat sheet\n\nSoft CTA:\n\nIf you take this advice and build something, let me know!\n\nSimple:\n\nFeel free to leave a like and RT if this helped."
      },
      {
        "title": "Damian Player Style (Tactical)",
        "body": "All lowercase (deliberate)\nUrgent, tactical tone\n1500+ words\nHeavy step-by-step detail\nHard CTA with lead magnet"
      },
      {
        "title": "Alex Finn Style (Motivational)",
        "body": "Normal capitalization\nWarm, motivational tone\n800-1200 words\nMix of WHY and HOW\nSoft CTA + product links"
      },
      {
        "title": "Dan Koe Style (Philosophical)",
        "body": "Long-form essay (2000+ words)\nPersonal storytelling opener\nNamed frameworks (\"The Pyramid Principle\")\nDeep teaching, not just tactics\nNewsletter CTA"
      },
      {
        "title": "Common Mistakes to Avoid",
        "body": "Short articles under 500 words\nFacts without story/emotion\nNo clear sections or headers\nNo objection handling\nNo immediate wins section\nNo CTA\nGeneric AI-sounding language\nEm dashes (—) everywhere\nExcessive emojis\nPasting tweet URLs instead of using Insert menu"
      },
      {
        "title": "Prerequisites",
        "body": "clawd browser running on CDP port 18800\nLogged into X on the browser"
      },
      {
        "title": "Navigate to Article Editor",
        "body": "# Open new article\nagent-browser --cdp 18800 navigate \"https://x.com/compose/article\"\n\n# Take snapshot to see current state\nagent-browser --cdp 18800 snapshot"
      },
      {
        "title": "Paste Content",
        "body": "# Put content in clipboard\ncat article.txt | pbcopy\n\n# Click content area, select all, paste\nagent-browser --cdp 18800 click '[contenteditable=\"true\"]'\nagent-browser --cdp 18800 press \"Meta+a\"\nagent-browser --cdp 18800 press \"Meta+v\""
      },
      {
        "title": "Upload Cover Image",
        "body": "# Upload to file input\nagent-browser --cdp 18800 upload 'input[type=\"file\"]' /path/to/cover.png\n\n# Wait for Edit media dialog, click Apply\nagent-browser --cdp 18800 snapshot | grep -i apply\nagent-browser --cdp 18800 click @e5  # Apply button ref"
      },
      {
        "title": "Publish",
        "body": "# Find and click Publish button\nagent-browser --cdp 18800 snapshot | grep -i publish\nagent-browser --cdp 18800 click @e35  # Publish button ref\n\n# Confirm in dialog\nagent-browser --cdp 18800 click @e5   # Confirm"
      },
      {
        "title": "Cleanup (Important!)",
        "body": "# Close tab after publishing\nagent-browser --cdp 18800 tab list\nagent-browser --cdp 18800 tab close 1"
      },
      {
        "title": "Troubleshooting: Stale Element Refs",
        "body": "If clicks fail due to stale refs, use JS evaluate:\n\nagent-browser --cdp 18800 evaluate \"(function() { \n  const btns = document.querySelectorAll('button'); \n  for (let btn of btns) { \n    if (btn.innerText.includes('Publish')) { \n      btn.click(); \n      return 'clicked'; \n    } \n  } \n  return 'not found'; \n})()\""
      },
      {
        "title": "Convert Markdown to X-Friendly Format",
        "body": "# scripts/format-for-x.sh\n#!/bin/bash\n# Converts markdown to X Articles format\n\nINPUT=\"$1\"\nOUTPUT=\"${2:-${INPUT%.md}-x-ready.txt}\"\n\ncat \"$INPUT\" | \\\n  # Remove markdown headers, keep text\n  sed 's/^## /\\n/g' | \\\n  sed 's/^### /\\n/g' | \\\n  sed 's/^# /\\n/g' | \\\n  # Remove markdown bold/italic\n  sed 's/\\*\\*//g' | \\\n  sed 's/\\*//g' | \\\n  # Remove em dashes\n  sed 's/ — /: /g' | \\\n  sed 's/—/:/g' | \\\n  # Join lines within paragraphs (keeps blank lines as separators)\n  awk 'BEGIN{RS=\"\"; FS=\"\\n\"; ORS=\"\\n\\n\"} {gsub(/\\n/, \" \"); print}' \\\n  > \"$OUTPUT\"\n\necho \"Created: $OUTPUT\""
      },
      {
        "title": "Pre-Publish Checklist",
        "body": "Hook grabs attention in first line\n Objections addressed early\n Step-by-step with time estimates\n Immediate wins section included\n CTA at the end\n No em dashes (—)\n Sentences joined on single lines\n Cover image 5:2 aspect ratio\n Embeds referenced as \"see below\"\n Proofread for AI-sounding language"
      },
      {
        "title": "Tweetable Quote Patterns",
        "body": "For promoting your article:\n\nResult + Cost:\n\nI gave an AI agent full access to my MacBook. It checks email, manages calendar, pushes code. Costs $20/month. A VA costs $2000.\n\nYou Don't Need X:\n\nYou don't need a Mac Mini. You don't need a server. I'm running my AI agent on an old MacBook Air from a drawer.\n\nGap Warning:\n\nThe gap between 'has AI agent' and 'doesn't' is about to get massive. I set mine up in 15 minutes.\n\nUrgency:\n\nMost people will bookmark this and never set it up. Don't be most people. The window is closing."
      },
      {
        "title": "Example Workflow",
        "body": "Write article in markdown with clear sections\nRun format script to convert to X-friendly plain text\nGenerate cover image with DALL-E (1792x716 or 5:2 ratio)\nOpen X article editor via browser automation\nPaste content and add section headers manually in editor\nUpload cover image via file input\nAdd inline images at section breaks\nInsert embeds (they'll appear at bottom)\nPreview and proofread\nPublish\nPost promotional tweet with hook + article link"
      },
      {
        "title": "Related Skills",
        "body": "bird - X/Twitter CLI for posting tweets\nde-ai-ify - Remove AI jargon from text\nai-pdf-builder - Generate PDFs (for lead magnets)\n\nBuilt by @NextXFrontier"
      }
    ],
    "body": "X Articles — Viral Long-Form for Twitter\n\nBeat the algorithm. Create and publish X (Twitter) Articles with proven viral patterns.\n\nAI-powered formatting, hook patterns, and browser automation. Handles Draft.js quirks, embed limitations, and image uploads.\n\nQuick Reference\nContent Formatting Rules (CRITICAL)\n\nX Articles uses Draft.js editor with specific quirks:\n\nLine breaks = paragraph breaks - Each newline creates a new paragraph block with spacing\nJoin sentences on ONE LINE - All sentences in the same paragraph must be on a single line\nUse plain text, not markdown - X Articles uses rich text, not markdown\nNo em dashes (—) - Replace with colons or rewrite sentences\n\nWrong:\n\nSentence one.\nSentence two.\nSentence three.\n\n\nRight:\n\nSentence one. Sentence two. Sentence three.\n\nEmbed Limitation (IMPORTANT)\n\nEmbedded posts ALWAYS render at the END of the content block, not inline.\n\nWorkarounds:\n\nStructure article to reference \"see posts below\"\nAccept visual flow: text → text → embeds at bottom\nUse Insert > Posts menu (don't paste URLs)\nImage Specs\nType\tAspect Ratio\tRecommended Size\nCover/Header\t5:2\t1792x716 or similar\nInline images\t16:9 or 4:3\t1792x1024 (DALL-E HD)\nViral Article Structure\nThe Template\nHOOK (hit insecurity or opportunity)\n\nWHAT IT IS (1-2 paragraphs with social proof)\n\nWHY MOST PEOPLE WON'T DO IT (address objections)\n\nTHE [X]-MINUTE GUIDE\n- Step 1 (time estimate)\n- Step 2 (time estimate)\n- ...\n\nYOUR FIRST [N] WINS (immediate value)\n- Win 1: copy-paste example\n- Win 2: copy-paste example\n\nTHE COST (value comparison)\n\nWHAT TO DO AFTER (next steps)\n\nTHE WINDOW (urgency)\n\nCTA (soft or hard)\n\nHook Patterns That Work\n\nInsecurity/FOMO:\n\neveryone's talking about X... and you're sitting there wondering if you missed the window\n\n\nBig Opportunity:\n\nthis is the biggest opportunity of our lifetime\n\n\nNews Hook:\n\nX just open sourced the algo. Here's what it means for you:\n\n\nRIP Pattern:\n\nRIP [profession]. This AI tool will [action] in seconds.\n\n\nWTF Pattern:\n\nWTF!! This AI Agent [does amazing thing]. Here's how:\n\n\nPersonal Story:\n\nWhen I was young, I was always drawn to people who...\n\nCTA Patterns\n\nHard CTA (engagement bait):\n\nRT + follow + reply 'KEYWORD' and I'll send the cheat sheet\n\n\nSoft CTA:\n\nIf you take this advice and build something, let me know!\n\n\nSimple:\n\nFeel free to leave a like and RT if this helped.\n\nStyle Guide\nDamian Player Style (Tactical)\nAll lowercase (deliberate)\nUrgent, tactical tone\n1500+ words\nHeavy step-by-step detail\nHard CTA with lead magnet\nAlex Finn Style (Motivational)\nNormal capitalization\nWarm, motivational tone\n800-1200 words\nMix of WHY and HOW\nSoft CTA + product links\nDan Koe Style (Philosophical)\nLong-form essay (2000+ words)\nPersonal storytelling opener\nNamed frameworks (\"The Pyramid Principle\")\nDeep teaching, not just tactics\nNewsletter CTA\nCommon Mistakes to Avoid\nShort articles under 500 words\nFacts without story/emotion\nNo clear sections or headers\nNo objection handling\nNo immediate wins section\nNo CTA\nGeneric AI-sounding language\nEm dashes (—) everywhere\nExcessive emojis\nPasting tweet URLs instead of using Insert menu\nBrowser Automation (agent-browser)\nPrerequisites\nclawd browser running on CDP port 18800\nLogged into X on the browser\nNavigate to Article Editor\n# Open new article\nagent-browser --cdp 18800 navigate \"https://x.com/compose/article\"\n\n# Take snapshot to see current state\nagent-browser --cdp 18800 snapshot\n\nPaste Content\n# Put content in clipboard\ncat article.txt | pbcopy\n\n# Click content area, select all, paste\nagent-browser --cdp 18800 click '[contenteditable=\"true\"]'\nagent-browser --cdp 18800 press \"Meta+a\"\nagent-browser --cdp 18800 press \"Meta+v\"\n\nUpload Cover Image\n# Upload to file input\nagent-browser --cdp 18800 upload 'input[type=\"file\"]' /path/to/cover.png\n\n# Wait for Edit media dialog, click Apply\nagent-browser --cdp 18800 snapshot | grep -i apply\nagent-browser --cdp 18800 click @e5  # Apply button ref\n\nPublish\n# Find and click Publish button\nagent-browser --cdp 18800 snapshot | grep -i publish\nagent-browser --cdp 18800 click @e35  # Publish button ref\n\n# Confirm in dialog\nagent-browser --cdp 18800 click @e5   # Confirm\n\nCleanup (Important!)\n# Close tab after publishing\nagent-browser --cdp 18800 tab list\nagent-browser --cdp 18800 tab close 1\n\nTroubleshooting: Stale Element Refs\n\nIf clicks fail due to stale refs, use JS evaluate:\n\nagent-browser --cdp 18800 evaluate \"(function() { \n  const btns = document.querySelectorAll('button'); \n  for (let btn of btns) { \n    if (btn.innerText.includes('Publish')) { \n      btn.click(); \n      return 'clicked'; \n    } \n  } \n  return 'not found'; \n})()\"\n\nContent Preparation Script\nConvert Markdown to X-Friendly Format\n# scripts/format-for-x.sh\n#!/bin/bash\n# Converts markdown to X Articles format\n\nINPUT=\"$1\"\nOUTPUT=\"${2:-${INPUT%.md}-x-ready.txt}\"\n\ncat \"$INPUT\" | \\\n  # Remove markdown headers, keep text\n  sed 's/^## /\\n/g' | \\\n  sed 's/^### /\\n/g' | \\\n  sed 's/^# /\\n/g' | \\\n  # Remove markdown bold/italic\n  sed 's/\\*\\*//g' | \\\n  sed 's/\\*//g' | \\\n  # Remove em dashes\n  sed 's/ — /: /g' | \\\n  sed 's/—/:/g' | \\\n  # Join lines within paragraphs (keeps blank lines as separators)\n  awk 'BEGIN{RS=\"\"; FS=\"\\n\"; ORS=\"\\n\\n\"} {gsub(/\\n/, \" \"); print}' \\\n  > \"$OUTPUT\"\n\necho \"Created: $OUTPUT\"\n\nPre-Publish Checklist\n Hook grabs attention in first line\n Objections addressed early\n Step-by-step with time estimates\n Immediate wins section included\n CTA at the end\n No em dashes (—)\n Sentences joined on single lines\n Cover image 5:2 aspect ratio\n Embeds referenced as \"see below\"\n Proofread for AI-sounding language\nTweetable Quote Patterns\n\nFor promoting your article:\n\nResult + Cost:\n\nI gave an AI agent full access to my MacBook. It checks email, manages calendar, pushes code. Costs $20/month. A VA costs $2000.\n\n\nYou Don't Need X:\n\nYou don't need a Mac Mini. You don't need a server. I'm running my AI agent on an old MacBook Air from a drawer.\n\n\nGap Warning:\n\nThe gap between 'has AI agent' and 'doesn't' is about to get massive. I set mine up in 15 minutes.\n\n\nUrgency:\n\nMost people will bookmark this and never set it up. Don't be most people. The window is closing.\n\nExample Workflow\nWrite article in markdown with clear sections\nRun format script to convert to X-friendly plain text\nGenerate cover image with DALL-E (1792x716 or 5:2 ratio)\nOpen X article editor via browser automation\nPaste content and add section headers manually in editor\nUpload cover image via file input\nAdd inline images at section breaks\nInsert embeds (they'll appear at bottom)\nPreview and proofread\nPublish\nPost promotional tweet with hook + article link\nRelated Skills\nbird - X/Twitter CLI for posting tweets\nde-ai-ify - Remove AI jargon from text\nai-pdf-builder - Generate PDFs (for lead magnets)\n\nBuilt by @NextXFrontier"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/NextFrontierBuilds/x-articles",
    "publisherUrl": "https://clawhub.ai/NextFrontierBuilds/x-articles",
    "owner": "NextFrontierBuilds",
    "version": "1.1.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/x-articles",
    "downloadUrl": "https://openagent3.xyz/downloads/x-articles",
    "agentUrl": "https://openagent3.xyz/skills/x-articles/agent",
    "manifestUrl": "https://openagent3.xyz/skills/x-articles/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/x-articles/agent.md"
  }
}