Agent skill

Newsletter Digest

by Varnan-Tech in Varnan-Tech/opendirectory

Aggregates RSS feeds from the past week, synthesizes the top stories using Gemini, and publishes a newsletter digest to Ghost CMS.

MITAuto-check passedWriting & Content

Install Newsletter Digest

skills CLI
$ npx skills add Varnan-Tech/opendirectory --skill newsletter-digest -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Varnan-Tech/opendirectory newsletter-digest --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Varnan-Tech/opendirectory.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/newsletter-digest .claude/skills/newsletter-digest && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
newsletter-digest
GitHub stars
674
Token cost
~1.9k tokens
SKILL.md length
792 words
Files
10 (incl. scripts, references)
Skills in repo
61
Repo updated
First seen
Licence
MIT

At a glance

Aggregates RSS feeds from the past week, synthesizes the top stories using Gemini, and publishes a newsletter digest to Ghost CMS.

  • Works in 7 steps: Check Setup → Fetch and Parse Feeds → Read Format Rules → …
  • Asked to generate a newsletter
  • SKILL.md covers Writing Style, CRITICAL RULE, Step 1: Check Setup and Step 2: Fetch and Parse Feeds, plus 6 more sections
  • Runs JavaScript scripts from its folder; calls node and npm; reaches another.com; needs GEMINI_API_KEY and GHOST_ADMIN_KEY

What it does

Newsletter Digest is an agent skill from Varnan-Tech/opendirectory. Aggregates RSS feeds from the past week, synthesizes the top stories using Gemini, and publishes a newsletter digest to Ghost CMS. Optionally outputs formatted Markdown for Substack or any other platform. Use when asked to generate a newsletter, create a weekly digest, summarize RSS feeds, compile top stories for a newsletter, or publish a digest to Ghost. Trigger when a user mentions newsletter digest, weekly roundup, RSS digest, compile top stories, or publish to Ghost.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 12 other files, including scripts and reference files (for example `README.md`, `evals/evals.json` and `feeds.json`).

It sits in Writing & Content, covering Newsletters. It works with Substack. The repository describes itself as: AI Agent Skills built for Founders who hate Marketing. The licence is MIT.

When your agent uses it

  • Asked to generate a newsletter
  • Create a weekly digest
  • Summarize RSS feeds
  • Compile top stories for a newsletter

Example prompts

  • “Use the newsletter-digest skill to aggregate RSS feeds from the past week, synthesizes the top stories using Gemini, and publishes a newsletter…”
  • “/newsletter-digest”

Requirements

  • Node.js
  • A credential in GEMINI_API_KEY
  • A credential in GHOST_ADMIN_KEY

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Check Setup
  2. Fetch and Parse Feeds
  3. Read Format Rules
  4. Synthesize with Gemini
  5. Self-QA
  6. Format and Preview
  7. Publish to Ghost or Output

What it can do on your machine

Read from SKILL.md and the folder at commit 9bf5144. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 2 files in scripts/ (JavaScript), which the agent can run.

    Shell commands in SKILL.md call:

    • node
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • another.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • GEMINI_API_KEY
    • GHOST_ADMIN_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Newsletter Digest loads about 1.9k tokens when it runs, and up to ~4.3k if it reads all its reference files. Until then it costs about 124 tokens; SKILL.md has 792 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~124
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from Varnan-Tech/opendirectory at commit 9bf5144, republished under its MIT licence (© Varnan-Tech). 792 words, ~1,926 tokens.

Download SKILL.mdSave it as .claude/skills/newsletter-digest/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.
name
newsletter-digest
description
Aggregates RSS feeds from the past week, synthesizes the top stories using Gemini, and publishes a newsletter digest to Ghost CMS. Optionally outputs formatted Markdown for Substack or any other platform. Use when asked to generate a newsletter, create a weekly digest, summarize RSS feeds, compile top stories for a newsletter, or publish a digest to Ghost. Trigger when a user mentions newsletter digest, weekly roundup, RSS digest, compile top stories, or publish to Ghost.
author
OpenDirectory
version
1.0.0

Newsletter Digest

Aggregate content from RSS feeds, synthesize the week's top stories with Gemini, and publish a digest to Ghost CMS. Supports weekly digests, topic-focused roundups, and curated picks formats.

Writing Style

Apply to all generated digest content:

  • Active voice only
  • Short sentences, one idea per sentence
  • No em dashes — use a period or comma instead
  • No semicolons
  • No markdown or asterisks in the final newsletter body
  • No hashtags

Banned words — do not use any of these in the digest: 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

CRITICAL RULE

Every claim, statistic, and summary in the digest must come from the fetched articles. Never fabricate data points, quotes, or facts. If a source article has no meaningful content, skip it.


Step 1: Check Setup

1a. Verify feeds are configured

Check if feeds.json exists in the skill directory:

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

If missing, ask the user: "Which RSS feeds should I monitor? Share a list of URLs and I'll create feeds.json."

The format is:

json
[
  { "url": "https://example.com/feed", "name": "Source Name" },
  { "url": "https://another.com/rss", "name": "Another Source" }
]

1b. Verify required environment variables

Check that these are set:

  • GEMINI_API_KEY (required): for synthesis
  • GHOST_URL and GHOST_ADMIN_KEY (required for Ghost publishing, optional if output-only)

If GEMINI_API_KEY is missing, stop and ask the user to set it.

GHOST config is optional. If not set, the skill outputs formatted Markdown instead of publishing.

1c. Verify script dependencies

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

If missing:

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

Step 2: Fetch and Parse Feeds

Run the fetch script:

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

The script:

  • Reads feeds.json for the list of feeds
  • Fetches each feed using rss-parser
  • Filters items published in the last 7 days
  • Deduplicates by URL
  • Sorts by publish date, newest first
  • Saves results to /tmp/newsletter-digest-articles.json

If the script errors on a specific feed, it logs a warning and continues. One bad feed does not stop the run.

After the script completes, verify the output:

bash
node -e "
const fs = require('fs');
const data = JSON.parse(fs.readFileSync('/tmp/newsletter-digest-articles.json', 'utf8'));
console.log('Total articles:', data.articles.length);
console.log('From feeds:', data.feedsSummary.map(f => f.name + ': ' + f.count).join(', '));
console.log('Date range:', data.dateRange.from, 'to', data.dateRange.to);
"

If fewer than 3 articles are found, warn the user and ask if they want to extend the date range to 14 days. Pass --days=14 to the script to widen the window.


Step 3: Read Format Rules

Read references/digest-format.md in full before generating any content. Internalize:

  • Three digest formats (Weekly Roundup, Topic Deep Dive, Curated Picks) and when to use each
  • Section structure and length requirements per format
  • Attribution rules (every claim links to a source)
  • Tone and voice guidelines

Read references/output-template.md and select the template matching the requested format.

If the user did not specify a format, default to Weekly Roundup.


Step 4: Synthesize with Gemini

Read /tmp/newsletter-digest-articles.json and build a synthesis prompt.

Prompt structure:

You are a newsletter editor writing a digest of this week's top stories.

Sources (use ONLY these — do not invent facts):
[For each article: Title | Source | Date | Summary]

Task:
Write a [FORMAT] digest following this structure:
[Paste the selected template from references/output-template.md]

Rules:
- Every claim, statistic, and quote must come from the sources above
- Write in active voice, short sentences, contractions allowed
- Do not use: incredible, amazing, leveraging, game-changing, delve, groundbreaking, cutting-edge, revolutionize
- No em dashes, no semicolons, no hashtags
- Include [Source: Name](URL) attribution after each major claim
- Output plain text with HTML heading tags only (no markdown asterisks)

Call Gemini with this prompt. Target model: gemini-2.0-flash or the latest available.

If the response contains any banned words or invented statistics not present in the source articles, regenerate with a stricter prompt.


Show full SKILL.md (324 more words)Show less

Step 5: Self-QA

Run every check before presenting. Fix violations first.

  • Every claim, statistic, and quote traces to a source article
  • No banned words in any section
  • No em dashes in the text
  • No semicolons in the text
  • Every section has at least one source attribution with URL
  • Word count is within the format's target range (see references/digest-format.md)
  • No section repeated the same story twice
  • Title is specific (includes the date range or issue number, not just "Weekly Digest")
  • HTML output is valid (no unclosed tags if Ghost publishing)

Fix all violations before presenting to the user.


Step 6: Format and Preview

Present the digest to the user in this order:

  1. Title — Issue date range or topic
  2. Digest content — Full formatted text
  3. Source list — All articles used, with URLs
  4. Word count and article count

Ask: "Ready to publish to Ghost as a draft, or would you like to edit first?"


Step 7: Publish to Ghost or Output

If GHOST_URL and GHOST_ADMIN_KEY are set and user confirms:

Run the publish script:

bash
node /Users/ksd/Desktop/Varnan_skills/newsletter-digest/scripts/ghost-publish.js \
  --title "DIGEST_TITLE" \
  --status "draft"

The script reads /tmp/newsletter-digest-output.json (written by the agent in Step 6) and posts to Ghost.

After posting, the script returns the Ghost admin URL for the draft. Present this to the user: "Draft saved at: [URL]. Review and publish from your Ghost dashboard."

If the user wants to publish immediately, pass --status "published" to the script.

If Ghost is not configured or user says "output only":

Output the digest in three formats:

  1. HTML — ready to paste into any CMS
  2. Markdown — for Substack, Notion, or Hashnode
  3. Plain text — for email clients

Add: "Substack does not offer a public API. Copy the Markdown version into your Substack editor directly."


Notes on Substack

Substack has no public API. Programmatic posting is not possible without reverse-engineering internal endpoints, which violates their terms. The skill outputs a formatted Markdown digest ready to paste into the Substack editor. This is the correct approach.

© Varnan-Tech, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 9 other files (scripts, references) in skills/newsletter-digest of Varnan-Tech/opendirectory.

  • SKILL.md
  • .env.example
  • README.md
  • evals/evals.json
  • feeds.json
  • package.json
  • references/digest-format.md
  • references/output-template.md
  • scripts/fetch-feeds.js
  • scripts/ghost-publish.js

Open the folder on GitHubat commit 9bf5144

Compare with similar skills

Newsletter Digest next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Newsletter Digest compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Newsletter Digest this skillVarnan-Tech/opendirectory674—~1.9kAutomated safety check: PassMIT
Shakespeare Writing StudioZCZHAO-1999/shakespeare-writing-studio178—~1.5kAutomated safety check: PassMIT
Content Trend Researcheralirezarezvani/claude-code-skill-factory8821 repos~2.1kAutomated safety check: PassMIT
Serenity Replyleslieyeo/serenity-reply135—~3kAutomated safety check: PassMIT
End-of-Article CTA Designersamber/cc-skills227—~3.1kAutomated safety check: PassMIT
Idea Extractoraiskilloftheweek/claude-ai-skill-of-the-week149—~1.5kAutomated safety check: PassNone

Similar skills

  • Shakespeare Writing Studio

    ZCZHAO-1999/shakespeare-writing-studio

    Produce publish-ready Chinese and English writing packages across WeChat articles, Medium/Substack essays, research notes, founder memos, op-eds, speeches, data storytelling, statistical graphics…

    178 GitHub stars~1.5k tokensUpdated 3 mo ago
    Writing & ContentAuto-check passed
  • Content Trend Researcher

    alirezarezvani/claude-code-skill-factory

    Advanced content and topic research skill that analyzes trends across Google Analytics, Google Trends, Substack, Medium, Reddit, LinkedIn, X, blogs, podcasts, and YouTube to generate data-driven…

    882 GitHub starsUsed in 1 repo~2.1k tokens
    Writing & ContentAuto-check passed
  • Serenity Reply

    leslieyeo/serenity-reply

    Serenity (@aleabitoreddit) 的思维框架与表达方式。基于 6 维度深度调研(1700+ 推文、Substack 长访谈、第三方分析、批评者观点), 提炼 5 个核心心智模型、8 条决策启发式和完整的表达 DNA。

    135 GitHub stars~3k tokensUpdated 4 mo ago
    Writing & ContentAuto-check passed
  • Interviews you about objective, audience and context, then designs an end-of-article call to action with copy, placement, A/B test plan and accessibility check.

    227 GitHub stars~3.1k tokensUpdated 10 days ago
    Writing & ContentAuto-check passed
  • Idea Extractor

    aiskilloftheweek/claude-ai-skill-of-the-week

    Analyzes long-form content (transcripts, articles, interviews, webinars, podcast notes) and extracts the 3 best content ideas for any publishing platform — LinkedIn, Substack, blog, newsletter…

    149 GitHub stars~1.5k tokensUpdated 4 mo ago
    Writing & ContentAuto-check passed
  • Create Article

    Abilityai/cornelius

    Create long-form articles from knowledge base insights. An agent skill from Abilityai/cornelius.

    109 GitHub stars~3k tokensUpdated 2 days ago
    Writing & ContentAuto-check: notes

More from Varnan-Tech/opendirectory

All 61 skills in this repo
  • Graphic Ebook

    Varnan-Tech/opendirectory

    Creates professionally designed B2B SaaS e-books in HTML + CSS, exported as print-ready PDF.

    674 GitHub stars~5k tokensUpdated yesterday
    Auto-check passed
  • Docs From Code

    Varnan-Tech/opendirectory

    Generates and updates README.md and API reference docs by reading your codebase's functions, routes, types, schemas, and architecture.

    674 GitHub stars~1.8k tokensUpdated yesterday
    Auto-check passed
  • Graphic Chart

    Varnan-Tech/opendirectory

    Generates data visualization charts (bar, line, area, pie, doughnut, scatter, radar, treemap) as PNG using Apache ECharts v6.

    674 GitHub stars~2.9k tokensUpdated yesterday
    Auto-check passed
  • Graphic Gif

    Varnan-Tech/opendirectory

    Creates animated looping GIFs from CSS animations (default) or AI image-to-video.

    674 GitHub stars~3k tokensUpdated yesterday
    Auto-check passed
  • Map Your Market

    Varnan-Tech/opendirectory

    Given a product description, category keywords, or competitor names (any combination), searches Reddit, Hacker News, GitHub Issues, G2, and Google Trends for the real pains your market experiences…

    674 GitHub stars~4.3k tokensUpdated yesterday
    Auto-check passed
  • Podcast Transcript Fetcher

    Varnan-Tech/opendirectory

    A skill your agent uses when fetching, searching, or analyzing transcripts from Lenny's Podcast, Dwarkesh Podcast, Cheeky Pint, 20VC, or A16z Podcast.

    674 GitHub stars~1.9k tokensUpdated yesterday
    Auto-check: notes

Works with

Questions about Newsletter Digest

What does Newsletter Digest do?

Aggregates RSS feeds from the past week, synthesizes the top stories using Gemini, and publishes a newsletter digest to Ghost CMS. Newsletter Digest is an agent skill from Varnan-Tech/opendirectory. Aggregates RSS feeds from the past week, synthesizes the top stories using Gemini, and publishes a newsletter digest to Ghost CMS.

When should I use Newsletter Digest?

Newsletter Digest fits situations like: asked to generate a newsletter; create a weekly digest; summarize RSS feeds; compile top stories for a newsletter.

How do I install Newsletter Digest in Claude Code?

Run `npx skills add Varnan-Tech/opendirectory --skill newsletter-digest -a claude-code`. Or copy the skill folder (skills/newsletter-digest in Varnan-Tech/opendirectory) into .claude/skills/newsletter-digest in your project. Claude Code loads it when a task matches its description.

How do I install Newsletter Digest in Codex?

Run `npx skills add Varnan-Tech/opendirectory --skill newsletter-digest -a codex`. Or copy the skill folder (skills/newsletter-digest in Varnan-Tech/opendirectory) into .agents/skills/newsletter-digest in your project. Codex loads it when a task matches its description.

Can I use Newsletter Digest in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Varnan-Tech/opendirectory --skill newsletter-digest -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/newsletter-digest, .gemini/skills/newsletter-digest, .github/skills/newsletter-digest and .opencode/skills/newsletter-digest in your project.

What does Newsletter Digest need to run?

Going by SKILL.md and its folder, Newsletter Digest needs JavaScript for the scripts in its folder, the command-line tools its instructions call (node and npm) and credentials named GEMINI_API_KEY and GHOST_ADMIN_KEY. Our summary lists: Node.js; A credential in GEMINI_API_KEY; A credential in GHOST_ADMIN_KEY.

Does Newsletter Digest access the network?

SKILL.md names 1 domain. In commands or code: another.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Newsletter Digest safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Newsletter Digest use?

Newsletter Digest is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Newsletter Digest use?

About 1.9k tokens (SKILL.md is roughly 7.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.4k tokens, read only when the agent opens those files.

What are the alternatives to Newsletter Digest?

Skills that share tags, products or a category with Newsletter Digest: Shakespeare Writing Studio (ZCZHAO-1999/shakespeare-writing-studio, 178 stars), Content Trend Researcher (alirezarezvani/claude-code-skill-factory, 882 stars), Serenity Reply (leslieyeo/serenity-reply, 135 stars) and End-of-Article CTA Designer (samber/cc-skills, 227 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Newsletter Digest?

Varnan-Tech (a GitHub organization) maintains it in Varnan-Tech/opendirectory, which has 674 GitHub stars. The repository holds 61 skills in this directory. The repository was last updated on October 10, 2026.

Source: Varnan-Tech/opendirectory on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.