L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Données et recherche · SKILL.md

content-pipeline

content-pipeline

Full-autopilot trend discovery, deep research, and social publishing pipeline. Uses trend-pulse (20 sources), cf-browser (headless Chrome), and notebooklm (research + artifacts) MCP servers. Generates algorithm-optimized content based on Meta's 7 patent-based ranking algorithms. Use when user mentions trending topics, content creation, social media publishi…

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: content-pipeline description: Full-autopilot trend discovery, deep research, and social publishing pipeline. Uses trend-pulse (20 sources), cf-browser (headless Chrome), and notebooklm (research + artifacts) MCP servers. Generates algorithm-optimized content based on Meta's 7 patent-based ranking algorithms. Use when user mentions trending topics, content creation, social media publishing, trend analysis, research pipeline, viral content, content scoring, or Threads posting. user_invocable: true

Content Pipeline

AI-powered content pipeline: trend discovery -> deep research -> algorithm-optimized writing -> social publishing.

MCP Servers Required

Install via uvx (one-time, auto-cached):

uvx --from 'trend-pulse[mcp]' trend-pulse-server
uvx --from cf-browser-mcp cf-browser-mcp
uvx --from notebooklm-skill notebooklm-mcp

MCP Tools Reference

trend-pulse (12 tools)

Trend Data:

  • get_trending(sources, geo, count): Query ALL 20 free sources. sources="" for all. geo: "TW"/"US"/"JP"/"". count: 20.
    • Sources: google_trends, hackernews, mastodon, bluesky, wikipedia, github, pypi, google_news, lobsters, devto, npm, reddit, coingecko, dockerhub, stackoverflow, producthunt, arxiv, lemmy, dcard, ptt
  • search_trends(query, sources, geo): Cross-source keyword search.
  • list_sources(): List all sources.
  • take_snapshot(sources, geo, count): Save snapshot for velocity tracking.
  • get_trend_history(keyword, days, source): Historical data with direction.

Content Guide:

  • get_content_brief(topic): Writing brief with hook examples, patent strategies, CTA.
  • get_scoring_guide(): 5-dimension patent scoring. Score >= 70 required.
  • get_platform_specs(platform): Platform specs (char limits, algorithm signals, posting times).
  • get_review_checklist(): Quality review checklist (7 checks).
  • get_reel_guide(): Reels script guide (3 styles).

Search:

  • search_threads_posts(query): Search Threads posts by heat score.

cf-browser (10 tools)

Headless Chrome via Cloudflare Browser Rendering. Use instead of WebFetch for JS-rendered pages.

  • browser_markdown(url): Clean Markdown. Most used for deep research.
  • browser_content(url): Full rendered HTML.
  • browser_screenshot(url): Full page screenshot (PNG).
  • browser_pdf(url): Generate PDF.
  • browser_scrape(url, selector): CSS selector extraction.
  • browser_json(url, schema): AI-driven structured data extraction.
  • browser_links(url): Extract all hyperlinks.
  • browser_a11y(url): Accessibility tree (low token cost).
  • browser_crawl(url): Async multi-page crawl.
  • browser_crawl_status(id): Check crawl progress.

notebooklm (13 tools)

Deep research + 9 downloadable artifact types (podcast, slides, report, quiz, flashcards, mindmap, datasheet, study_guide). ⚠️ infographic download is unreliable — use slides instead.

Management: create_notebook, list_notebooks, delete_notebook Research: add_source, ask, summarize, list_sources, research(mode="fast"|"thorough") Artifacts: generate_artifact(type, lang?), download_artifact(type, output_path) Pipelines: research_pipeline(sources, questions, output_format), trend_research(geo?, count?, platform?)

Video Synthesis (slides + podcast -> MP4):

  1. Generate slides (PDF) + audio (podcast M4A) — sequentially
  2. Download both
  3. pdftoppm -png -r 300 slides.pdf slides_page
  4. ffmpeg -framerate 1/$per_slide -pattern_type glob -i 'slides_page-*.png' -i audio.mp3 -c:v libx264 -pix_fmt yuv420p -c:a aac -shortest output.mp4

Visual Content Generation

Use NotebookLM to generate all visual content. It produces professional-quality slides and mind maps — far better than any alternative.

⛔ 嚴格禁止:不得使用 Pillow/PIL、ImageMagick、Python 程式碼或 HTML+Playwright 生成圖卡。 所有圖卡一律透過 NotebookLM nlm_generate(type="slides") 生成。

⚠️ Do NOT use infographic (download unreliable). Use slides for all visual content. ⚠️ NLM slides 多頁時 → 必須全部上傳 → 用 carousel_urls 發文(不要只發一張)。

Image Cards & Slides (圖卡 / 簡報)

Workflow: Create a NotebookLM notebook with the content as a text source, then generate the visual artifact.

1. create_notebook(title="Post Visual", text_sources=["<post content + key data points>"])
2. generate_artifact(name_or_id, "slides", lang="zh-TW")   → PDF slides (best for cards)
3. download_artifact(name_or_id, "slides", "downloads/card.pdf")

Choose artifact type by use case:

NeedArtifact TypeOutput
Single image cardslides (1 slide)PDF → export as image
Multi-slide carouselslides (N slides)PDF → split per page
Data visualizationslidesinfographic ⚠️ download unreliable — use slides
Topic overviewmindmapMind map diagram
Detailed reportreportFormatted document
Study materialflashcards / study_guideLearning cards

Carousel Posts (輪播貼文)

For multi-image carousel (Threads supports 2-20 images):

  1. Create notebook with content organized as numbered sections (one per slide)
  2. generate_artifact(name_or_id, "slides") → multi-page PDF
  3. Download and split: pdftoppm -png -r 300 slides.pdf slide
  4. Upload EVERY image — call upload_image for EACH slide PNG:
    upload_image(file_path="downloads/slide-1.png") → url1
    upload_image(file_path="downloads/slide-2.png") → url2
    upload_image(file_path="downloads/slide-3.png") → url3
    ...repeat for ALL slides
    
  5. Publish as carousel — pass ALL URLs to publish_to_threads:
    publish_to_threads(text="...", carousel_urls=[url1, url2, url3, ...])
    
    Do NOT use image parameter — use carousel_urls when there are 2+ images.

⚠️ CRITICAL: When slides have multiple pages, you MUST use carousel_urls (not image). Single image parameter only posts the first image. carousel_urls posts ALL images as a swipeable carousel.

Video (影片)

Combine slides + podcast audio into MP4:

  1. generate_artifact(name_or_id, "slides") → PDF
  2. generate_artifact(name_or_id, "podcast") → M4A audio (run sequentially, NOT parallel)
  3. Download both artifacts
  4. pdftoppm -png -r 300 slides.pdf slides_page
  5. ffmpeg -framerate 1/$per_slide -pattern_type glob -i 'slides_page-*.png' -i audio.mp3 -c:v libx264 -pix_fmt yuv420p -c:a aac -shortest output.mp4

Tips for Better Visuals

  • Language: Always pass lang="zh-TW" for Traditional Chinese content
  • Rich text sources: The more context you feed into the notebook, the better the visual output
  • One topic per notebook: Don't mix unrelated topics — create separate notebooks
  • Add URLs as sources: add_source(name_or_id, url="...") for reference material — NotebookLM will incorporate key data into visuals

Mandatory Rules

0. Workspace Containment

All files MUST be saved within the session workspace directory. Use relative paths like downloads/card.pdf. NEVER use ~/Downloads, ~/Desktop, or any absolute path outside the workspace.

1. Read Original Sources

NEVER write content based on titles/metadata alone.

  • Single topic: read >= 1 primary source via browser_markdown(url)
  • Controversial: read >= 2 sources (both sides)
  • Data claims: find original data source

2. Timeline Verification

Every fact must have a verified timestamp. Discard anything > 48 hours old.

Source ageAllowedForbidden
Today"today" "just now"-
1-3 days"recently" "the other day""just" "latest"
4-7 days"last week" "this week""just" "yesterday"
8-30 days"this month""last week" "just"
>30 days"earlier" "this year"any freshness words

3. Use ALL Sources

get_trending with sources="" to query ALL 20 sources. Do NOT filter unless user explicitly asks.

Meta Patent-Based Scoring (5 Dimensions)

#DimensionWeightCheck
1Hook Power25%First line: number or contrast, 10-45 chars
2Engagement Trigger25%CTA anyone can answer, direct "you" address
3Conversation Durability20%Has contrast/both sides, creates discussion
4Velocity Potential15%Timely, 50-300 chars, urgency language
5Format Score15%Mobile-scannable, line breaks, no text walls

Quality Gates (ALL must pass before publishing):

  • Overall Score >= 70
  • Conversation Durability >= 55
  • Hook: 10-45 chars with number or contrast
  • CTA: clear question or poll
  • Timeline: all time words verified
  • Source: every claim traceable
  • No AI filler words

Pipeline Workflow

  1. Discover: get_trending(sources="", geo, count=20)
  2. Read Source: browser_markdown(url) — MANDATORY
  3. Verify Timeline: Check dates, discard stale
  4. Research: browser_markdown + WebSearch, 2-3 sources min
  5. Brief: get_content_brief(topic)
  6. Create: Write -> patent check (5 dimensions)
  7. Score: get_scoring_guide — self-score (>= 70)
  8. Review: get_review_checklist — final check
  9. NotebookLM (optional): create notebook -> generate artifacts
  10. Publish: provide ready-to-post content or use publish tool
Skills enregistrées