{
  "schemaVersion": "1.0",
  "item": {
    "slug": "cook-a-skill-content-blog-social",
    "name": "Auto Content",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/kaokray/cook-a-skill-content-blog-social",
    "canonicalUrl": "https://clawhub.ai/kaokray/cook-a-skill-content-blog-social",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/cook-a-skill-content-blog-social",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=cook-a-skill-content-blog-social",
    "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/cook-a-skill-content-blog-social"
    },
    "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/cook-a-skill-content-blog-social",
    "agentPageUrl": "https://openagent3.xyz/skills/cook-a-skill-content-blog-social/agent",
    "manifestUrl": "https://openagent3.xyz/skills/cook-a-skill-content-blog-social/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/cook-a-skill-content-blog-social/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": "Auto Content blog",
        "body": "End-to-end pipeline: trending topic → keyword research → brief → UGC enrichment → human-style draft → visual & link enrichment → SEO + GEO optimization → scored QA report."
      },
      {
        "title": "Pipeline",
        "body": "[0]   X TREND MONITOR   → auto-run on session start, propose hot keywords\n[1]   KEYWORD RESEARCH  → scored, data-backed selection\n[2]   CONTENT BRIEF     → outline + keyword map + UGC insertion points\n[3]   UGC ENRICHMENT    → mine comments → ready-to-paste blog sections\n[4]   DRAFT             → human-style, data-backed, zero AI patterns\n[4.5] VISUAL & LINKS    → data charts (matplotlib) + inline hyperlinks on every citation\n[5]   SEO + GEO         → on-page checklist + AI-bot-friendly formatting\n[6]   QA REPORT         → rubric score + publish verdict\n\nEnter at any stage. Run all stages from scratch. Start at Stage 5 for existing drafts.\n\nQuick commands:\n\nrun full pipeline → Stage 0 → Stage 6\nstart from stage [N] → enter at any stage\nscore my draft → Stage 5 → Stage 6\nenrich my draft → Stage 4.5 only (charts + links on existing draft)\n\nReference files (read when detail is needed):\n\nreferences/scoring-rubrics.md — all scoring tables (trend, keyword, UGC, SEO, GEO)\nreferences/ai-patterns-blacklist.md — full list of AI phrases to never write\nreferences/output-templates.md — exact output format for each stage\nreferences/example-run.md — real example: keyword \"what is liquid staking\""
      },
      {
        "title": "Inputs",
        "body": "Required: project_spec (.md) + keyword_or_topic\nOptional: ugc_urls (skip Stage 3 if absent), blog_draft, language (default: English), word_count (default: 1500–2000), tone (default: auto-detect from spec)\n\nIf project_spec is missing: stop and ask for it before starting."
      },
      {
        "title": "Stage 0 — X Trend Monitor",
        "body": "Run automatically at the start of every new session, before the user says anything.\n\nParse project_spec.md → extract: domain/niche, audience, product themes, competitor names\nRun web searches (fill in values from spec):\n\nsite:x.com [domain keyword] -filter:replies\n[domain keyword] trending twitter 2025\n[domain keyword] discussion OR debate twitter\n[competitor name] twitter sentiment 2025\ncrypto twitter trending today\n[domain keyword] CT crypto twitter discussion\n\n\nScore each topic → see references/scoring-rubrics.md Stage 0\nKeep top 3. Output Trend Alert before any user message → see references/output-templates.md Stage 0\n\nFallback if web search off: skip, say \"Stage 0 unavailable. Provide a keyword to start Stage 1.\"\nFallback if no trends found: list 3 evergreen topics from spec context."
      },
      {
        "title": "Stage 1 — Keyword Research",
        "body": "Generate 8–12 seed keywords: head terms, mid-tail, long-tail question variants\nFor each seed, run:\n\ngoogle trends [keyword] 2025 → direction\nsite:x.com [keyword] + [keyword] trending twitter 2025 → buzz + debate angle\n[keyword] search volume 2025 + ubersuggest [keyword] → volume estimate\nSearch [keyword] → extract People Also Ask + Related Searches\n\n\nScore using rubric → see references/scoring-rubrics.md Stage 1\nSelect top 1 = primary, next 5–8 = secondary/LSI. Label volume as [estimated].\nAsk once: \"Do you have an Ahrefs or SEMrush API key?\" Use if provided.\nOutput → see references/output-templates.md Stage 1\n\nEdge cases: keyword too broad → suggest 3–5 long-tail alternatives. Doesn't match spec → warn + confirm."
      },
      {
        "title": "Stage 2 — Content Brief & Outline",
        "body": "Pick flow pattern:\n\nProblem → Solution | What → Why → How | Comparison | Journey | Argument\n\n\nMap every long-tail keyword to H2, H3, or FAQ entry. No section without a keyword anchor.\nFlag UGC insertion points: ← UGC: community counterpoints / ← UGC: case studies / ← UGC: FAQ\nOutput brief + outline → see references/output-templates.md Stage 2\nAsk: \"Does this outline look good?\" Wait for confirmation before Stage 3.\n\nFAQ section: minimum 5 entries. Mandatory for GEO."
      },
      {
        "title": "Stage 3 — UGC Enrichment",
        "body": "Skip if no ugc_urls. Note \"UGC: Missing\" in QA report.\n\nWhy it matters: Reddit ~21% of Google AI Overview citations. Real UGC = 2–3x AI search visibility. E-E-A-T \"Experience\" signal = cannot be faked by AI content.\n\nFor each URL:\n\nweb_fetch → extract post body + all comments with engagement metrics\n\nFallback if login wall: \"Paste comment text directly\"\n\n\nQuality-score each comment → see references/scoring-rubrics.md Stage 3\nClassify into 3 categories:\n\nCategory A — Counter-Arguments: challenges original post, edge cases, \"Yeah but...\" → 150–300 word prose paragraph\nCategory B — Real-World FAQs: direct questions from comments, especially upvoted or repeated → 3–6 Q&A pairs\nCategory C — Personal Experiences: first-person accounts with specific numbers/outcomes → 2–4 mini case studies, 50–100 words each, paraphrased but never fabricated\n\n\nViral pattern analysis for comments scoring ≥7: identify top 3 trigger types, output 2 writing tips\nMap each UGC block to its insertion point from Stage 2 outline\nOutput → see references/output-templates.md Stage 3\n\nHard rules: never fabricate, never include usernames, never include spam/memes, max 6 FAQs + 4 case studies.\n\nEdge cases: <10 comments → warn \"limited data\". All score <3 → \"No high-value comments, try different URL.\""
      },
      {
        "title": "Stage 4 — Draft Writing",
        "body": "Write full article: follow Stage 2 outline exactly, insert Stage 3 UGC blocks at flagged points.\n\nBefore writing: write Meta Title (≤60 chars, primary keyword near front) + Meta Description (≤160 chars, primary keyword + hook)\n\nIntro: specific fact or bold claim opener. Primary keyword within first 100 words. Write featured snippet candidate block (40–60 words, direct definition or numbered steps) — place within first H2.\n\nBody: answer-first each H2 (1–2 sentence direct answer before elaboration). Min 1 data point per major section. Find real stats first: search [topic] statistics 2025. If unavailable: [DATA NEEDED: search \"[query]\"]. Source format: stat — Source, Year. UGC blocks at exact insertion points.\n\nData minimum: 3 data points total per article. Never invent statistics.\n\nParagraphs: 3–4 lines max. Define technical terms inline on first use.\n\nAI patterns: never write any phrase from references/ai-patterns-blacklist.md. If caught: stop, rewrite with fact or direct claim.\n\nConclusion: synthesize 2–3 takeaways. Do not restate all H2s as bullet points. Specific CTA.\n\nInternal links: suggest 2–3, anchor text uses secondary keywords.\n\nOutput format → see references/output-templates.md Stage 4"
      },
      {
        "title": "Stage 4.5 — Visual & Link Enrichment",
        "body": "Runs automatically after Stage 4 is complete. Cannot be skipped — required for publish-ready output."
      },
      {
        "title": "Why This Stage Exists",
        "body": "Data charts are 3× more likely to be cited by AI search engines than the same data in plain text\nInline hyperlinks on every source citation signal editorial credibility to Google and AI crawlers\nEvery unlinked — Source, Year is a missed E-E-A-T trust signal"
      },
      {
        "title": "Step 1 — Identify Chart Opportunities",
        "body": "Scan the draft for data points that meet at least one of these criteria:\n\nCriterionExampleChange over time (2+ periods)\"TVL grew from $2B to $8B in 6 months\"Compares 2+ assets or metrics\"Lido APY 3.8% vs solo staking 3.2%\"Inflow / outflow trend\"$1.2B ETF inflows in Q1 2025\"Index or score over time\"Fear & Greed Index: 12/100\"Ratio that changed\"ETH staking ratio: 18% → 27% in 12 months\"3+ data points in a seriesMonthly DEX volume figures\n\nChart types by data shape:\n\nData typeChart typePerformance over timeLine chart with fill-underInflows / outflowsBar chart — green positive, red negativeIndex or score over timeBar chart with color-coded zonesRatio or comparison over timeLine or area chartSingle-point comparisonHorizontal bar or stat callout box\n\nChart design standards (apply to every chart):\n\nBackground: #F7F7F7 (light gray), no heavy gridlines\nPrimary color: #E8650A (orange, default for crypto/Web3 — adjust to project brand if spec defines one)\nRemove top + right spine\nAnnotate key data points directly on chart (peak, trough, threshold)\nSource line at bottom-left: gray italic — Source: [Name] | [Notes]\nFont: DejaVu Sans (matplotlib default)\nResolution: 150 DPI minimum\nAlways generate alt text for every chart\n\nMaximum 6 charts per article. More than 6 slows page load. Excess data points → stat callout boxes instead.\n\nIf no qualifying data points found: output a styled stat callout box for that statistic instead of a chart."
      },
      {
        "title": "Step 2 — Generate Charts",
        "body": "Use Python + matplotlib. Execute in the computing environment.\n\nFor each chart, produce:\n\nPNG image embedded in the output\nCaption (1–2 sentences): Chart [N]: [What it shows]. [Time period]. Sources: [Name].\nAlt text string for CMS upload: [Chart type] showing [metric] from [start] to [end]. [Key finding in one sentence].\n\nPlace each chart immediately after the paragraph that first introduces its data. Never stack two charts back-to-back without body text between them."
      },
      {
        "title": "Step 3 — Convert All Source Citations to Hyperlinks",
        "body": "Scan the entire draft for every inline source citation. Patterns to find:\n\nPatternExample— [Source, Year]— CoinDesk, Jan 2025per [Source]per DeFiLlamaaccording to [Source]according to Messari[Source] reportsDune Analytics reports([Source])(CoinGecko)\n\nFor each citation:\n\nRun web search: [publication] [topic] [approximate date]\nVerify URL resolves\nReplace plain-text source with inline hyperlink — anchor text = source name\nIf exact article not found: link to publication homepage + flag [VERIFY URL]\nIf citation is vague (\"analysts say\"): flag [SOURCE NEEDED] — never invent a source\n\nLink rules:\n\nPrefer original publisher over aggregators\nNo paywalled links if a free version exists\nAll external links: open in new tab in HTML output\nDo not add links to unattributed claims"
      },
      {
        "title": "Step 4 — Output Summary",
        "body": "Append this block to the enriched draft:\n\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\nSTAGE 4.5 — VISUAL & LINK ENRICHMENT SUMMARY\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\nCharts generated:      [N] / [max 6]\n  - Chart 1: [title] → placed after [section name]\n  - Chart 2: [title] → placed after [section name]\n\nSource links resolved: [N] / [total citations found]\n  - [Source name] → [URL] ✅\n  - [Source name] → [URL] ⚠️ [VERIFY URL — linked to homepage]\n\nUnlinked citations flagged: [N]\n  - \"[claim]\" → [SOURCE NEEDED]\n\nAlt text strings:\n  Chart 1: \"[alt text]\"\n  Chart 2: \"[alt text]\"\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
      },
      {
        "title": "SEO Checklist",
        "body": "Meta title: 50–60 chars, primary keyword near front\n Meta description: 150–160 chars, primary keyword, hook\n H1 contains primary keyword (only one H1)\n H2s use secondary keywords or question variants\n Primary keyword in first 100 words and in conclusion\n Keyword density: 1–1.5%\n Paragraphs ≤4 lines\n 2+ internal link suggestions (anchor text = secondary keywords)\n 1–2 external authoritative sources noted\n Image alt text recommendations (min 2)\n FAQ present → FAQPage schema | How-to steps → HowTo schema"
      },
      {
        "title": "GEO Rules (apply all 7)",
        "body": "GEO = Generative Engine Optimization. Goal: easy for Perplexity, Google SGE, ChatGPT Search to parse and cite.\n\nAnswer-first every H2 — 1–2 sentence direct answer before elaboration\nExplicit entity labeling — full context on first mention, units on all numbers (\"3.2% APY\"), explicit dates (\"as of Q1 2025\")\nFAQ mandatory (min 5) — each answer self-contained, 50–150 words, direct answer first\nFeatured snippet block — 40–60 words, placed within first H2, paragraph OR numbered list (not mixed)\nCitation-friendly — each factual claim on its own sentence, data formatted number unit — Source, Year, no pronoun ambiguity\nSecondary keywords in internal link anchor text\nUGC sections present — confirms E-E-A-T \"Experience\" signal\n\nGEO output block → see references/output-templates.md Stage 5\nScoring rubric → see references/scoring-rubrics.md Stage 5"
      },
      {
        "title": "Stage 6 — QA Scoring Report",
        "body": "Score using 100-point rubric → see references/scoring-rubrics.md Stage 6\n\nThresholds: 85–100 = Publish-ready | 70–84 = Minor fixes | Below 70 = Needs revision\n\nOutput format → see references/output-templates.md Stage 6"
      },
      {
        "title": "Edge Cases",
        "body": "CaseActionproject_spec missingStop. Ask for spec before starting.Keyword too broadStop. Suggest 3–5 long-tail alternatives. Wait for choice.Keyword doesn't match specWarn. Ask for confirmation.Deep technical contentFlag [SME REVIEW]. Never fabricate.User requests VietnameseSwitch all output to Vietnamese. Same formats.Word count <500 or >5000Warn. Recommend 800–2500.SEO score below 70List specific fixes with section references.Web search unavailableSkip Stage 0. Flag affected stages. Fall back to training knowledge, label [estimated].UGC URL behind login wallSkip URL. Ask: \"Paste comment text directly.\"No high-value UGC comments\"No high-value comments. Try a different URL.\"No ugc_urls providedSkip Stage 3. Mark UGC = Missing in QA.Stage 0 finds no trendsList 3 evergreen topics from spec context.User enters mid-pipelineStart at appropriate stage. Ask what they have.Stage 4.5: no chart-worthy dataOutput stat callout boxes for all key numbers. Flag: \"No time-series or comparison data found — consider adding benchmark data in Stage 4 revision.\"Stage 4.5: more than 6 chart-worthy pointsPrioritize: (1) comparisons, (2) trends, (3) index scores. Remainder → stat callout boxes.Stage 4.5: all source URLs paywalledLink to publisher homepages. Flag every instance [VERIFY URL]. List all in enrichment summary.Stage 4.5: source article not foundLink to publication homepage + flag [SOURCE NEEDED — could not verify].Stage 4.5: citation is vague (\"analysts say\")Flag [SOURCE NEEDED]. Never invent a source.Stage 4.5: web search unavailableSkip link resolution. Flag all citations [HYPERLINK NEEDED — web search off]. Charts still generated from in-draft data."
      },
      {
        "title": "Limitations",
        "body": "Stage 0: simulated X monitoring via web search, not live X API\nKeyword volume: estimated unless user provides API key\nNo CMS auto-publishing, no image generation (editorial)\nStage 4.5 generates data charts from in-draft data via matplotlib — does NOT generate decorative or editorial images\n[VERIFY], [DATA NEEDED], [SOURCE NEEDED], and [VERIFY URL] flags require human review before publishing\nSEO/GEO scores: internal rubric, not third-party tool scores\nUGC mining: public pages only"
      }
    ],
    "body": "Auto Content blog\n\nEnd-to-end pipeline: trending topic → keyword research → brief → UGC enrichment → human-style draft → visual & link enrichment → SEO + GEO optimization → scored QA report.\n\nPipeline\n[0]   X TREND MONITOR   → auto-run on session start, propose hot keywords\n[1]   KEYWORD RESEARCH  → scored, data-backed selection\n[2]   CONTENT BRIEF     → outline + keyword map + UGC insertion points\n[3]   UGC ENRICHMENT    → mine comments → ready-to-paste blog sections\n[4]   DRAFT             → human-style, data-backed, zero AI patterns\n[4.5] VISUAL & LINKS    → data charts (matplotlib) + inline hyperlinks on every citation\n[5]   SEO + GEO         → on-page checklist + AI-bot-friendly formatting\n[6]   QA REPORT         → rubric score + publish verdict\n\n\nEnter at any stage. Run all stages from scratch. Start at Stage 5 for existing drafts.\n\nQuick commands:\n\nrun full pipeline → Stage 0 → Stage 6\nstart from stage [N] → enter at any stage\nscore my draft → Stage 5 → Stage 6\nenrich my draft → Stage 4.5 only (charts + links on existing draft)\n\nReference files (read when detail is needed):\n\nreferences/scoring-rubrics.md — all scoring tables (trend, keyword, UGC, SEO, GEO)\nreferences/ai-patterns-blacklist.md — full list of AI phrases to never write\nreferences/output-templates.md — exact output format for each stage\nreferences/example-run.md — real example: keyword \"what is liquid staking\"\nInputs\n\nRequired: project_spec (.md) + keyword_or_topic Optional: ugc_urls (skip Stage 3 if absent), blog_draft, language (default: English), word_count (default: 1500–2000), tone (default: auto-detect from spec)\n\nIf project_spec is missing: stop and ask for it before starting.\n\nStage 0 — X Trend Monitor\n\nRun automatically at the start of every new session, before the user says anything.\n\nParse project_spec.md → extract: domain/niche, audience, product themes, competitor names\nRun web searches (fill in values from spec):\nsite:x.com [domain keyword] -filter:replies\n[domain keyword] trending twitter 2025\n[domain keyword] discussion OR debate twitter\n[competitor name] twitter sentiment 2025\ncrypto twitter trending today\n[domain keyword] CT crypto twitter discussion\nScore each topic → see references/scoring-rubrics.md Stage 0\nKeep top 3. Output Trend Alert before any user message → see references/output-templates.md Stage 0\n\nFallback if web search off: skip, say \"Stage 0 unavailable. Provide a keyword to start Stage 1.\" Fallback if no trends found: list 3 evergreen topics from spec context.\n\nStage 1 — Keyword Research\nGenerate 8–12 seed keywords: head terms, mid-tail, long-tail question variants\nFor each seed, run:\ngoogle trends [keyword] 2025 → direction\nsite:x.com [keyword] + [keyword] trending twitter 2025 → buzz + debate angle\n[keyword] search volume 2025 + ubersuggest [keyword] → volume estimate\nSearch [keyword] → extract People Also Ask + Related Searches\nScore using rubric → see references/scoring-rubrics.md Stage 1\nSelect top 1 = primary, next 5–8 = secondary/LSI. Label volume as [estimated].\nAsk once: \"Do you have an Ahrefs or SEMrush API key?\" Use if provided.\nOutput → see references/output-templates.md Stage 1\n\nEdge cases: keyword too broad → suggest 3–5 long-tail alternatives. Doesn't match spec → warn + confirm.\n\nStage 2 — Content Brief & Outline\nPick flow pattern:\nProblem → Solution | What → Why → How | Comparison | Journey | Argument\nMap every long-tail keyword to H2, H3, or FAQ entry. No section without a keyword anchor.\nFlag UGC insertion points: ← UGC: community counterpoints / ← UGC: case studies / ← UGC: FAQ\nOutput brief + outline → see references/output-templates.md Stage 2\nAsk: \"Does this outline look good?\" Wait for confirmation before Stage 3.\n\nFAQ section: minimum 5 entries. Mandatory for GEO.\n\nStage 3 — UGC Enrichment\n\nSkip if no ugc_urls. Note \"UGC: Missing\" in QA report.\n\nWhy it matters: Reddit ~21% of Google AI Overview citations. Real UGC = 2–3x AI search visibility. E-E-A-T \"Experience\" signal = cannot be faked by AI content.\n\nFor each URL:\n\nweb_fetch → extract post body + all comments with engagement metrics\nFallback if login wall: \"Paste comment text directly\"\nQuality-score each comment → see references/scoring-rubrics.md Stage 3\nClassify into 3 categories:\nCategory A — Counter-Arguments: challenges original post, edge cases, \"Yeah but...\" → 150–300 word prose paragraph\nCategory B — Real-World FAQs: direct questions from comments, especially upvoted or repeated → 3–6 Q&A pairs\nCategory C — Personal Experiences: first-person accounts with specific numbers/outcomes → 2–4 mini case studies, 50–100 words each, paraphrased but never fabricated\nViral pattern analysis for comments scoring ≥7: identify top 3 trigger types, output 2 writing tips\nMap each UGC block to its insertion point from Stage 2 outline\nOutput → see references/output-templates.md Stage 3\n\nHard rules: never fabricate, never include usernames, never include spam/memes, max 6 FAQs + 4 case studies.\n\nEdge cases: <10 comments → warn \"limited data\". All score <3 → \"No high-value comments, try different URL.\"\n\nStage 4 — Draft Writing\n\nWrite full article: follow Stage 2 outline exactly, insert Stage 3 UGC blocks at flagged points.\n\nBefore writing: write Meta Title (≤60 chars, primary keyword near front) + Meta Description (≤160 chars, primary keyword + hook)\n\nIntro: specific fact or bold claim opener. Primary keyword within first 100 words. Write featured snippet candidate block (40–60 words, direct definition or numbered steps) — place within first H2.\n\nBody: answer-first each H2 (1–2 sentence direct answer before elaboration). Min 1 data point per major section. Find real stats first: search [topic] statistics 2025. If unavailable: [DATA NEEDED: search \"[query]\"]. Source format: stat — Source, Year. UGC blocks at exact insertion points.\n\nData minimum: 3 data points total per article. Never invent statistics.\n\nParagraphs: 3–4 lines max. Define technical terms inline on first use.\n\nAI patterns: never write any phrase from references/ai-patterns-blacklist.md. If caught: stop, rewrite with fact or direct claim.\n\nConclusion: synthesize 2–3 takeaways. Do not restate all H2s as bullet points. Specific CTA.\n\nInternal links: suggest 2–3, anchor text uses secondary keywords.\n\nOutput format → see references/output-templates.md Stage 4\n\nStage 4.5 — Visual & Link Enrichment\n\nRuns automatically after Stage 4 is complete. Cannot be skipped — required for publish-ready output.\n\nWhy This Stage Exists\nData charts are 3× more likely to be cited by AI search engines than the same data in plain text\nInline hyperlinks on every source citation signal editorial credibility to Google and AI crawlers\nEvery unlinked — Source, Year is a missed E-E-A-T trust signal\nStep 1 — Identify Chart Opportunities\n\nScan the draft for data points that meet at least one of these criteria:\n\nCriterion\tExample\nChange over time (2+ periods)\t\"TVL grew from $2B to $8B in 6 months\"\nCompares 2+ assets or metrics\t\"Lido APY 3.8% vs solo staking 3.2%\"\nInflow / outflow trend\t\"$1.2B ETF inflows in Q1 2025\"\nIndex or score over time\t\"Fear & Greed Index: 12/100\"\nRatio that changed\t\"ETH staking ratio: 18% → 27% in 12 months\"\n3+ data points in a series\tMonthly DEX volume figures\n\nChart types by data shape:\n\nData type\tChart type\nPerformance over time\tLine chart with fill-under\nInflows / outflows\tBar chart — green positive, red negative\nIndex or score over time\tBar chart with color-coded zones\nRatio or comparison over time\tLine or area chart\nSingle-point comparison\tHorizontal bar or stat callout box\n\nChart design standards (apply to every chart):\n\nBackground: #F7F7F7 (light gray), no heavy gridlines\nPrimary color: #E8650A (orange, default for crypto/Web3 — adjust to project brand if spec defines one)\nRemove top + right spine\nAnnotate key data points directly on chart (peak, trough, threshold)\nSource line at bottom-left: gray italic — Source: [Name] | [Notes]\nFont: DejaVu Sans (matplotlib default)\nResolution: 150 DPI minimum\nAlways generate alt text for every chart\n\nMaximum 6 charts per article. More than 6 slows page load. Excess data points → stat callout boxes instead.\n\nIf no qualifying data points found: output a styled stat callout box for that statistic instead of a chart.\n\nStep 2 — Generate Charts\n\nUse Python + matplotlib. Execute in the computing environment.\n\nFor each chart, produce:\n\nPNG image embedded in the output\nCaption (1–2 sentences): Chart [N]: [What it shows]. [Time period]. Sources: [Name].\nAlt text string for CMS upload: [Chart type] showing [metric] from [start] to [end]. [Key finding in one sentence].\n\nPlace each chart immediately after the paragraph that first introduces its data. Never stack two charts back-to-back without body text between them.\n\nStep 3 — Convert All Source Citations to Hyperlinks\n\nScan the entire draft for every inline source citation. Patterns to find:\n\nPattern\tExample\n— [Source, Year]\t— CoinDesk, Jan 2025\nper [Source]\tper DeFiLlama\naccording to [Source]\taccording to Messari\n[Source] reports\tDune Analytics reports\n([Source])\t(CoinGecko)\n\nFor each citation:\n\nRun web search: [publication] [topic] [approximate date]\nVerify URL resolves\nReplace plain-text source with inline hyperlink — anchor text = source name\nIf exact article not found: link to publication homepage + flag [VERIFY URL]\nIf citation is vague (\"analysts say\"): flag [SOURCE NEEDED] — never invent a source\n\nLink rules:\n\nPrefer original publisher over aggregators\nNo paywalled links if a free version exists\nAll external links: open in new tab in HTML output\nDo not add links to unattributed claims\nStep 4 — Output Summary\n\nAppend this block to the enriched draft:\n\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\nSTAGE 4.5 — VISUAL & LINK ENRICHMENT SUMMARY\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\nCharts generated:      [N] / [max 6]\n  - Chart 1: [title] → placed after [section name]\n  - Chart 2: [title] → placed after [section name]\n\nSource links resolved: [N] / [total citations found]\n  - [Source name] → [URL] ✅\n  - [Source name] → [URL] ⚠️ [VERIFY URL — linked to homepage]\n\nUnlinked citations flagged: [N]\n  - \"[claim]\" → [SOURCE NEEDED]\n\nAlt text strings:\n  Chart 1: \"[alt text]\"\n  Chart 2: \"[alt text]\"\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\nStage 5 — SEO + GEO Optimization\nSEO Checklist\n Meta title: 50–60 chars, primary keyword near front\n Meta description: 150–160 chars, primary keyword, hook\n H1 contains primary keyword (only one H1)\n H2s use secondary keywords or question variants\n Primary keyword in first 100 words and in conclusion\n Keyword density: 1–1.5%\n Paragraphs ≤4 lines\n 2+ internal link suggestions (anchor text = secondary keywords)\n 1–2 external authoritative sources noted\n Image alt text recommendations (min 2)\n FAQ present → FAQPage schema | How-to steps → HowTo schema\nGEO Rules (apply all 7)\n\nGEO = Generative Engine Optimization. Goal: easy for Perplexity, Google SGE, ChatGPT Search to parse and cite.\n\nAnswer-first every H2 — 1–2 sentence direct answer before elaboration\nExplicit entity labeling — full context on first mention, units on all numbers (\"3.2% APY\"), explicit dates (\"as of Q1 2025\")\nFAQ mandatory (min 5) — each answer self-contained, 50–150 words, direct answer first\nFeatured snippet block — 40–60 words, placed within first H2, paragraph OR numbered list (not mixed)\nCitation-friendly — each factual claim on its own sentence, data formatted number unit — Source, Year, no pronoun ambiguity\nSecondary keywords in internal link anchor text\nUGC sections present — confirms E-E-A-T \"Experience\" signal\n\nGEO output block → see references/output-templates.md Stage 5 Scoring rubric → see references/scoring-rubrics.md Stage 5\n\nStage 6 — QA Scoring Report\n\nScore using 100-point rubric → see references/scoring-rubrics.md Stage 6\n\nThresholds: 85–100 = Publish-ready | 70–84 = Minor fixes | Below 70 = Needs revision\n\nOutput format → see references/output-templates.md Stage 6\n\nEdge Cases\nCase\tAction\nproject_spec missing\tStop. Ask for spec before starting.\nKeyword too broad\tStop. Suggest 3–5 long-tail alternatives. Wait for choice.\nKeyword doesn't match spec\tWarn. Ask for confirmation.\nDeep technical content\tFlag [SME REVIEW]. Never fabricate.\nUser requests Vietnamese\tSwitch all output to Vietnamese. Same formats.\nWord count <500 or >5000\tWarn. Recommend 800–2500.\nSEO score below 70\tList specific fixes with section references.\nWeb search unavailable\tSkip Stage 0. Flag affected stages. Fall back to training knowledge, label [estimated].\nUGC URL behind login wall\tSkip URL. Ask: \"Paste comment text directly.\"\nNo high-value UGC comments\t\"No high-value comments. Try a different URL.\"\nNo ugc_urls provided\tSkip Stage 3. Mark UGC = Missing in QA.\nStage 0 finds no trends\tList 3 evergreen topics from spec context.\nUser enters mid-pipeline\tStart at appropriate stage. Ask what they have.\nStage 4.5: no chart-worthy data\tOutput stat callout boxes for all key numbers. Flag: \"No time-series or comparison data found — consider adding benchmark data in Stage 4 revision.\"\nStage 4.5: more than 6 chart-worthy points\tPrioritize: (1) comparisons, (2) trends, (3) index scores. Remainder → stat callout boxes.\nStage 4.5: all source URLs paywalled\tLink to publisher homepages. Flag every instance [VERIFY URL]. List all in enrichment summary.\nStage 4.5: source article not found\tLink to publication homepage + flag [SOURCE NEEDED — could not verify].\nStage 4.5: citation is vague (\"analysts say\")\tFlag [SOURCE NEEDED]. Never invent a source.\nStage 4.5: web search unavailable\tSkip link resolution. Flag all citations [HYPERLINK NEEDED — web search off]. Charts still generated from in-draft data.\nLimitations\nStage 0: simulated X monitoring via web search, not live X API\nKeyword volume: estimated unless user provides API key\nNo CMS auto-publishing, no image generation (editorial)\nStage 4.5 generates data charts from in-draft data via matplotlib — does NOT generate decorative or editorial images\n[VERIFY], [DATA NEEDED], [SOURCE NEEDED], and [VERIFY URL] flags require human review before publishing\nSEO/GEO scores: internal rubric, not third-party tool scores\nUGC mining: public pages only"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/kaokray/cook-a-skill-content-blog-social",
    "publisherUrl": "https://clawhub.ai/kaokray/cook-a-skill-content-blog-social",
    "owner": "kaokray",
    "version": "1.0.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/cook-a-skill-content-blog-social",
    "downloadUrl": "https://openagent3.xyz/downloads/cook-a-skill-content-blog-social",
    "agentUrl": "https://openagent3.xyz/skills/cook-a-skill-content-blog-social/agent",
    "manifestUrl": "https://openagent3.xyz/skills/cook-a-skill-content-blog-social/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/cook-a-skill-content-blog-social/agent.md"
  }
}