Communitygithub.com

Varnan-Tech/opendirectory

彙整過去一週的 RSS 摘要,使用 Gemini 合成頭條新聞,並將電子報發佈至 Ghost CMS。也可選擇輸出格式化的 Markdown,適用於 Substack 或其他平台。

opendirectory 是什麼?

這項技能會自動從設定的 RSS 摘要中提取過去一週的文章,利用 Gemini 模型進行摘要和合成,產生一封結構化的電子報。它支援「每週摘要」、「主題深度探討」和「精選推薦」三種格式,並能將最終內容以草稿或直接發佈的形式,推送至 Ghost CMS。如果 Ghost 未設定,技能則會輸出 HTML、Markdown 和純文字三種格式,方便使用者貼到 Substack 或任何其他內容管理系統。整個流程包含嚴格的自我檢查機制,確保所有事實和統計數據都來自原始文章,並遵守特定的寫作風格(例如使用主動語態、避免特定禁用詞彙),以產出高品質、可信任的摘要內容。

相容平台✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/Varnan-Tech/opendirectory/tree/main/skills/newsletter-digest

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

電子報摘要

從 RSS 摘要彙整內容,使用 Gemini 合成當週頭條新聞,並將摘要發佈至 Ghost CMS。支援「每週摘要」、「主題聚焦重點整理」和「精選推薦」等格式。

寫作風格

適用於所有生成的摘要內容:

  • 僅使用主動語態
  • 短句,一句只表達一個想法
  • 不要使用破折號 — 請改用句號或逗號
  • 不要使用分號
  • 最終電子報內文中不允許使用 Markdown 或星號
  • 不要使用主題標籤

禁用詞彙 — 請勿在摘要中使用以下任何詞彙: incredible, amazing, leveraging, synergize, game-changing, game changer, delve, harness, unlock, groundbreaking, cutting-edge, remarkable, paradigm, revolutionize, disruptive, transformative, thrilled, excited to share, powerful, innovative, comprehensive, actionable, crucial, vital, pivotal, elucidate, utilize, dive deep, tapestry, illuminate, revolutionize

關鍵規則

摘要中的每一項陳述、統計數據和摘要都必須來自所擷取的文章。切勿捏造數據點、引用或事實。如果來源文章沒有有意義的內容,請跳過該文章。


步驟 1:檢查設定

1a. 確認摘要已設定

檢查 feeds.json 是否存在於技能目錄中:

ls /Users/ksd/Desktop/Varnan_skills/newsletter-digest/feeds.json 2>/dev/null

如果檔案不存在,請詢問使用者:「我應該監控哪些 RSS 摘要?請分享一個 URL 清單,我將為您建立 feeds.json。」

格式如下:

[
  { "url": "https://example.com/feed", "name": "來源名稱" },
  { "url": "https://another.com/rss", "name": "另一個來源" }
]

1b. 確認必要的環境變數

檢查是否已設定以下變數:

  • GEMINI_API_KEY (必要):用於內容合成
  • GHOST_URL 和 GHOST_ADMIN_KEY (發佈到 Ghost 時為必要,若僅輸出則為選用)

如果缺少 GEMINI_API_KEY,請停止並要求使用者設定。

GHOST 設定為選用。如果未設定,該技能將輸出格式化的 Markdown 而非進行發佈。

1c. 確認腳本依賴項

ls /Users/ksd/Desktop/Varnan_skills/newsletter-digest/node_modules 2>/dev/null | head -1

如果缺少依賴項:

cd /Users/ksd/Desktop/Varnan_skills/newsletter-digest && npm install

步驟 2:擷取並解析摘要

執行擷取腳本:

node /Users/ksd/Desktop/Varnan_skills/newsletter-digest/scripts/fetch-feeds.js

該腳本會:

  • 讀取 feeds.json 以取得摘要清單
  • 使用 rss-parser 擷取每個摘要
  • 篩選在過去 7 天內發佈的項目
  • 根據 URL 進行去重
  • 按發佈日期排序,最新的在前
  • 將結果儲存到 /tmp/newsletter-digest-articles.json

如果腳本在處理特定摘要時發生錯誤,它會記錄警告並繼續執行。一個壞掉的摘要不會中斷整個流程。

腳本執行完畢後,請驗證輸出:

node -e "
const fs = require('fs');
const data = JSON.parse(fs.readFileSync('/tmp/newsletter-digest-articles.json', 'utf8'));
console.log('文章總數:', data.articles.length);
console.log('來自摘要:', data.feedsSummary.map(f => f.name + ': ' + f.count).join(', '));
console.log('日期範圍:', data.dateRange.from, '至', data.dateRange.to);
"

如果找到的文章少於 3 篇,請警告使用者,並詢問是否要將日期範圍延長至 14 天。傳遞 --days=14 參數給腳本以擴大視窗。


步驟 3:閱讀格式規則

在生成任何內容之前,請完整閱讀 references/digest-format.md。內化以下規則:

  • 三種摘要格式(每週摘要、主題深度探討、精選推薦)及其使用時機
  • 每種格式的章節結構和篇幅要求
  • 歸因規則(每一項主張都需連結到來源)
  • 語調和語氣指南

閱讀 references/output-template.md 並選擇與請求格式相符的範本。

如果使用者未指定格式,預設為「每週摘要」。


步驟 4:使用 Gemini 進行合成

讀取 /tmp/newsletter-digest-articles.json 並建立一個合成提示。

提示結構:

你是一位電子報編輯,正在撰寫本週頭條新聞的摘要。

來源(僅使用這些 — 請勿捏造事實):
[針對每篇文章:標題 | 來源 | 日期 | 摘要]

任務:
撰寫一份 [格式] 摘要,遵循以下結構:
[貼上參考文獻/output-template.md 中的選定範本]

規則:
- 每一項陳述、統計數據和引用都必須來自上述來源
- 使用主動語態、短句、允許縮寫
- 請勿使用:incredible, amazing, leveraging, game-changing, delve, groundbreaking, cutting-edge, revolutionize
- 不要使用破折號、不要使用分號、不要使用主題標籤
- 在每個主要陳述之後加上 [來源:名稱](URL) 歸因
- 輸出純文字,僅使用 HTML 標題標籤(不要使用 markdown 星號)

使用此提示調用 Gemini。目標模型:gemini-2.0-flash 或最新的可用模型。

如果回應中包含任何禁用詞彙或來源文章中未出現的捏造統計數據,請使用更嚴格的提示重新生成。


步驟 5:自我品質檢查

在呈現之前執行每一項檢查。先修正違規事項。

  • 每一項陳述、統計數據和引用都可追溯到來源文章
  • 任何章節中都沒有禁用詞彙
  • 文字中沒有破折號
  • 文字中沒有分號
  • 每個章節至少有一個包含 URL 的來源歸因
  • 字數在目標格式的範圍內(參見 references/digest-format.md)
  • 沒有章節重複相同的故事
  • 標題是具體的(包含日期範圍或期號,而不僅僅是「每週摘要」)
  • 如果發佈到 Ghost,HTML 輸出必須有效(沒有未閉合的標籤)

在呈現給使用者之前,修正所有違規事項。


步驟 6:格式化與預覽

按以下順序向使用者呈現摘要:

  1. 標題 — 期號日期範圍或主題
  2. 摘要內容 — 完整的格式化文字
  3. 來源清單 — 所有使用的文章及其 URL
  4. 字數和文章數量

詢問:「準備好以草稿形式發佈到 Ghost,還是您想先編輯?」


步驟 7:發佈到 Ghost 或輸出

如果已設定 GHOST_URL 和 GHOST_ADMIN_KEY 且使用者確認:

執行發佈腳本:

node /Users/ksd/Desktop/Varnan_skills/newsletter-digest/scripts/ghost-publish.js \
  --title "摘要標題" \
  --status "draft"

該腳本會讀取 /tmp/newsletter-digest-output.json(由代理程式在步驟 6 中寫入)並發佈到 Ghost。

發佈後,腳本會回傳草稿的 Ghost 管理員 URL。將此資訊呈現給使用者:「草稿已儲存於:[URL]。請從您的 Ghost 儀表板檢閱並發佈。」

如果使用者想立即發佈,請傳遞 --status "published" 參數給腳本。

如果未設定 Ghost 或使用者表示「僅輸出」:

以三種格式輸出摘要:

  1. HTML — 可直接貼入任何 CMS
  2. Markdown — 適用於 Substack、Notion 或 Hashnode
  3. 純文字 — 適用於電子郵件用戶端

補充說明:「Substack 不提供公開 API。請將 Markdown 版本直接複製到您的 Substack 編輯器中。」


關於 Substack 的注意事項

Substack 沒有公開 API。如果沒有逆向工程其內部端點(這違反其服務條款),就無法以程式化方式發佈。該技能會輸出格式化的 Markdown 摘要,準備好讓您貼入 Substack 編輯器。這是正確的做法。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

Varnan-Tech/opendirectory

Use when the user asks to generate a blog cover image, thumbnail, or article header. Automatically uses modern typography, brand logos, and Google Search grounding to create beautiful 16:9 images with Gemini 3.1 Flash Image Preview.

Varnan-Tech/opendirectory

World-class brand strategist and naming expert. Uses an interrogation-led discovery phase to extract your brand's DNA, then applies scientific naming frameworks (Phonosemantics) and automated multi-TLD domain checking.

Varnan-Tech/opendirectory

Use when the user asks to generate or update a project's CLAUDE or AGENTS context file from a codebase scan. Writes a focused file under 100 lines containing only the non-obvious build commands, conventions, and gotchas Claude Code needs.

Varnan-Tech/opendirectory

Use when the user wants to verify cold emails, enrich a lead list, or autonomously guess email addresses from a CSV using ValidEmail.co or the open-source Reacher engine.

Varnan-Tech/opendirectory

Competitive intelligence orchestrator tracking companies across 8+ platforms (GitHub, Twitter, Reddit, HN, PH, YC Jobs) with heat scores and AI briefings.

Varnan-Tech/opendirectory

Give it your product URL or description. It finds your top 5 competitors, runs three-track PR research across all of them (editorial, podcasts, communities), identifies which channels appear most frequently, looks up the journalist or host for each, and returns a tiered outreach list with story angles and ready-to-send cold pitch drafts tailored to your product. Use when asked to find PR opportunities, discover where competitors got featured, build a media outreach list, find which journalists cover my space, or get pitch templates for press coverage.

Varnan-Tech/opendirectory

Generate high-converting, deep-dive growth case studies in MDX format. Use this skill when asked to write a case study or blog post about a company's growth, tech stack, or product-led strategy. It handles the full pipeline (researching the company via Tavily, generating a 16:9 cover image, quality checking the draft, uploading assets to cloud storage, and pushing directly to the target repository).

Varnan-Tech/opendirectory

Scans your project for outdated npm, pip, Cargo, Go, or Ruby packages. Runs a CVE security audit. Fetches changelogs, summarizes breaking changes with Gemini, and opens one PR per risk group (patch, minor, major). Includes Diagnosis Mode for install conflicts. Use when asked to update dependencies, check for outdated packages, open dependency PRs, scan for package updates, audit for CVEs, or flag breaking changes in upgrades. Trigger when a user says "check for outdated packages", "update my dependencies", "open PRs for dependency updates", "scan for CVEs", or "which packages need upgrading".

Varnan-Tech/opendirectory

Generates and updates README.md and API reference docs by reading your codebase's functions, routes, types, schemas, and architecture. Uses graphify to build a knowledge graph first, then writes accurate docs from it. Use when asked to write docs, generate a README, document an API, update stale docs, create an API reference from code, add an architecture section, or document a project in any language. Trigger when a user says their docs are missing, outdated, or wants to document their codebase without writing it manually.

Varnan-Tech/opendirectory

Evaluates expired domain candidates against a target niche, scores them by topical relevance, historical activity level, and history cleanliness, then outputs a ranked shortlist with explainable reasoning and risk flags.

Varnan-Tech/opendirectory

Brutally honest developer-experience audit for a GitHub repo. Scores 10 DX dimensions (time-to-first-success, README clarity, visual proof, install, quick-start, docs, examples, community, trust, marketing), writes a shareable roast in the requested tone (brutal/honest/kind), produces a prioritized action plan ranked by impact × effort, and sketches an ideal README. Trigger when user says "roast my repo", "audit my README", "dx audit", "developer experience review", "score my GitHub project", "before launch checklist", or "make my repo shareable".

Varnan-Tech/opendirectory

Drafts and designs a complete HTML email newsletter from a topic or content brief. Outputs paste-ready HTML for Loops, Mailchimp, Beehiiv, Resend, or any standard email platform. Includes subject line options and plain-text fallback. Trigger when a user says "write a newsletter", "draft an email newsletter", "create an HTML email", "design an email for my subscribers", or "write a newsletter about [topic]".

Varnan-Tech/opendirectory

Takes a GitHub PR URL or the current branch and writes a plain-English explanation of what it does and why, then posts it as a PR comment. Use when asked to explain a PR, summarize a pull request, write a plain-English description of a PR, add a summary comment to a PR, or understand what a PR changes. Trigger when a user says "explain this PR", "summarize this pull request", "what does this PR do", "add a comment explaining the PR", or shares a GitHub PR URL and asks what it does.

Varnan-Tech/opendirectory

Audit how often LLMs recommend your brand vs competitors and generate a GEO action plan.

Varnan-Tech/opendirectory

Takes a competitor's public GitHub repo URL, fetches their open issues via the GitHub REST API, filters noise locally, clusters issues into 6 demand categories, computes a demand score per issue and per cluster, and outputs a ranked demand gap report with a GTM messaging brief. Use when asked to scan a competitor's GitHub issues, find what their users are begging for, turn GitHub complaints into product positioning, identify competitor feature gaps, or generate messaging from real user demand. Trigger when a user says "scan competitor issues", "what are users asking for on X repo", "find demand gaps in Y", "turn GitHub issues into messaging", or "what should I build based on competitor complaints".

Varnan-Tech/opendirectory

Find recurring confusion in your repo's GitHub Discussions, rank it by urgency, and draft the actual docs fixes and content angles — with verbatim community quotes and source links as evidence.

Varnan-Tech/opendirectory

SEO keyword research workflow for blog generation using Google Trends data. Use when writing blog posts, planning content calendars, or optimizing articles for search engines. Finds breakout keywords, builds content structure, and generates SEO-optimized blog outlines targeting tech and developer audiences.

Varnan-Tech/opendirectory

Generates a professionally designed case study PDF for B2B SaaS sales and marketing. Supports 7 page layouts, 9 style presets, 1-4 page output. Trigger when user says "create a case study", "write a customer story", "make a case study PDF", "design a success story", "turn this customer win into a PDF".

Varnan-Tech/opendirectory

Generates data visualization charts (bar, line, area, pie, doughnut, scatter, radar, treemap) as PNG using Apache ECharts v6. 1080×1080px default, 5 style presets, highlight annotations. Trigger when user says "create a chart", "visualize data", "make a bar chart", "line graph", "pie chart", "data visualization", "chart this data", "plot", "graph", or "visualize these numbers".

Varnan-Tech/opendirectory

Fetches low-star App Store and Google Play reviews, clusters them into broken-promise patterns, and generates a ranked copy brief with positioning opportunities.

相關技能