# Newsletter digest Human Guide

## What This Is For
Aggregates RSS feeds from the past week, synthesizes the top stories using Gemini, and publishes a newsletter digest to Ghost CMS. It gives the agent a clearer input/output frame for email marketing: what context to ask for, what decisions to make, and what usable artifact to return.

Use this as a human-readable version of the Newsletter digest agent skill. It is meant for marketers, operators, founders, and other non-coders who want the workflow without reading agent-specific implementation instructions.

## When To Use This
- Use this when you need a repeatable process for newsletter digest.
- Use this when the task needs judgment, examples, constraints, or a clear output format rather than a one-off prompt.
- Use this when you want to hand an AI assistant enough context to produce a usable marketing artifact.

## When Not To Use This
- Do not use this when you only need a quick factual answer.
- Do not use this when the work depends on private data you cannot share with the assistant.
- Do not use this as a replacement for legal, compliance, financial, or medical review.

## What You Need Before Starting
- The goal or business outcome you want.
- The audience, customer segment, or market context.
- Any source material the assistant should respect, such as notes, briefs, examples, URLs, or brand guidance.
- Constraints such as tone, length, channel, deadline, region, or approval requirements.
- A clear definition of what a good final answer should look like.

## Step-By-Step Workflow
1. State the job clearly: "Use the Newsletter digest guide to help me with..."
2. Add context: audience, goal, offer, channel, source material, and constraints.
3. Ask the assistant to identify missing inputs before producing the final output.
4. Have the assistant follow the skill-specific guidance below.
5. Review the result against the final checklist and ask for revisions where needed.

## Skill-Specific Guidance
- Short sentences, one idea per sentence
- No em dashes — use a period or comma instead
- No markdown or asterisks in the final newsletter body
- `GEMINI_API_KEY` (required): for synthesis
- `GHOST_URL` and `GHOST_ADMIN_KEY` (required for Ghost publishing, optional if output-only)
- Reads `feeds.json` for the list of feeds
- Fetches each feed using `rss-parser`
- Filters items published in the last 7 days
- Sorts by publish date, newest first
- Saves results to `/tmp/newsletter-digest-articles.json`
- Three digest formats (Weekly Roundup, Topic Deep Dive, Curated Picks) and when to use each
- Section structure and length requirements per format

## Decision Points And Nuance
The original skill emphasizes: Writing Style, CRITICAL RULE, Step 1: Check Setup, Step 2: Fetch and Parse Feeds, Step 3: Read Format Rules, Step 4: Synthesize with Gemini, Step 5: Self-QA, Step 6: Format and Preview, Step 7: Publish to Ghost or Output, Notes on Substack.

Use these questions to steer the work:
- What is the intended audience or buyer?
- What source material must be preserved?
- What should the assistant optimize for: clarity, persuasion, accuracy, speed, creativity, or conversion?
- What examples represent the desired quality bar?
- What should the assistant avoid?

## Common Mistakes
- Banned words — do not use any of these in the digest:
- 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.
- 1b. Verify required environment variables
- `GEMINI_API_KEY` (required): for synthesis
- `GHOST_URL` and `GHOST_ADMIN_KEY` (required for Ghost publishing, optional if output-only)
- If the script errors on a specific feed, it logs a warning and continues. One bad feed does not stop the run.
- Sources (use ONLY these — do not invent facts):
- Every claim, statistic, and quote must come from the sources above

## Copy-And-Paste Prompt
```text
Use the Newsletter digest human guide.

My goal:
[Describe the business outcome]

Audience:
[Describe who this is for]

Context and source material:
[Paste notes, examples, links, or existing copy]

Constraints:
[Tone, length, channel, timeline, must-include items, must-avoid items]

Before producing the final output, ask me for any missing information that would materially improve the result.
```

## Final Checklist
- [ ] The output matches the original goal.
- [ ] The audience and context are reflected in the answer.
- [ ] Important constraints and source material were preserved.
- [ ] The assistant made the relevant decisions explicit.
- [ ] The final artifact is ready to use, review, or hand to the next person.

## Source
This guide was generated from the varnan-tech/opendirectory skill entry for `newsletter-digest`.

## Source Skill Notes
These notes preserve the nuance from the original skill. Use them as supporting reference when the workflow above feels too generic.

# 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
