@opendirectory.dev/skills 0.1.65 → 0.1.67

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/package.json +1 -1
  2. package/skills/blog-cover-image-cli/README.md +112 -1
  3. package/skills/brand-alchemy/README.md +31 -1
  4. package/skills/claude-md-generator/README.md +73 -1
  5. package/skills/cold-email-verifier/README.md +41 -1
  6. package/skills/competitor-pr-finder/README.md +69 -1
  7. package/skills/cook-the-blog/README.md +82 -1
  8. package/skills/dependency-update-bot/README.md +96 -1
  9. package/skills/docs-from-code/README.md +93 -1
  10. package/skills/email-newsletter/README.md +72 -1
  11. package/skills/explain-this-pr/README.md +69 -1
  12. package/skills/gh-issue-to-demand-signal/README.md +95 -4
  13. package/skills/google-trends-api-skills/README.md +74 -1
  14. package/skills/graphic-case-study/README.md +97 -3
  15. package/skills/graphic-chart/README.md +0 -19
  16. package/skills/graphic-ebook/README.md +99 -3
  17. package/skills/graphic-gif/README.md +0 -19
  18. package/skills/graphic-slide-deck/README.md +104 -2
  19. package/skills/hackernews-intel/README.md +156 -1
  20. package/skills/human-tone/README.md +43 -1
  21. package/skills/kill-the-standup/README.md +79 -1
  22. package/skills/linkedin-job-post-to-buyer-pain-map/README.md +3 -3
  23. package/skills/linkedin-post-generator/README.md +103 -1
  24. package/skills/llms-txt-generator/README.md +138 -1
  25. package/skills/luma-attendees-scraper/README.md +0 -21
  26. package/skills/map-your-market/README.md +121 -1
  27. package/skills/meeting-brief-generator/README.md +85 -1
  28. package/skills/meta-ads-skill/README.md +67 -1
  29. package/skills/meta-tribeV2-skill/README.md +64 -3
  30. package/skills/newsletter-digest/README.md +142 -1
  31. package/skills/noise-to-linkedin-carousel/README.md +0 -21
  32. package/skills/noise2blog/README.md +102 -1
  33. package/skills/npm-downloads-to-leads/README.md +131 -12
  34. package/skills/oss-launch-kit/README.md +0 -21
  35. package/skills/outreach-sequence-builder/README.md +103 -1
  36. package/skills/position-me/README.md +65 -1
  37. package/skills/pr-description-writer/README.md +76 -1
  38. package/skills/pricing-finder/README.md +114 -1
  39. package/skills/pricing-page-psychology-audit/README.md +85 -1
  40. package/skills/product-update-logger/README.md +172 -4
  41. package/skills/producthunt-launch-kit/README.md +90 -1
  42. package/skills/reddit-icp-monitor/README.md +112 -1
  43. package/skills/reddit-post-engine/README.md +98 -1
  44. package/skills/schema-markup-generator/README.md +109 -1
  45. package/skills/sdk-adoption-tracker/README.md +127 -1
  46. package/skills/show-hn-writer/README.md +83 -1
  47. package/skills/stargazer/README.md +0 -21
  48. package/skills/tweet-thread-from-blog/README.md +104 -1
  49. package/skills/twitter-GTM-find-skill/README.md +37 -1
  50. package/skills/vc-curated-match/README.md +0 -21
  51. package/skills/vc-finder/README.md +98 -5
  52. package/skills/vid-motion-graphics/README.md +65 -5
  53. package/skills/where-your-customer-lives/README.md +0 -19
  54. package/skills/yc-intent-radar-skill/README.md +35 -1
@@ -168,24 +168,3 @@ Some browsers block downloads from DevTools-triggered scripts until user interac
168
168
  ## Disclaimer
169
169
 
170
170
  Use this responsibly and only for events and attendee lists your account is authorized to access.
171
-
172
-
173
- ## Install
174
-
175
- ### Video Tutorial
176
- Watch this quick video to see how it's done:
177
-
178
- https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
179
-
180
- ### Step 1: Download the skill from GitHub
181
- 1. Copy the URL of this specific skill folder from your browser's address bar.
182
- 2. Go to [download-directory.github.io](https://download-directory.github.io/).
183
- 3. Paste the URL and click **Enter** to download.
184
-
185
- ### Step 2: Install the Skill in Claude
186
- 1. Open your **Claude desktop app**.
187
- 2. Go to the sidebar on the left side and click on the **Customize** section.
188
- 3. Click on the **Skills** tab, then click on the **+** (plus) icon button to create a new skill.
189
- 4. Choose the option to **Upload a skill**, and drag and drop the `.zip` file (or you can extract it and drop the folder, both work).
190
-
191
- > **Note:** For some skills (like `position-me`), the `SKILL.md` file might be located inside a subfolder. Always make sure you are uploading the specific folder that contains the `SKILL.md` file!
@@ -1,4 +1,4 @@
1
- # map-your-market
1
+ # map-your-market
2
2
 
3
3
  Give this skill a product description, category keywords, or competitor names. It searches Reddit, Hacker News, GitHub Issues, G2, and Google Trends for real pain signals from your market -- then builds a complete positioning framework: who your ICP is, what they say out loud, and how to talk to them.
4
4
 
@@ -25,3 +25,123 @@ https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
25
25
  4. Choose the option to **Upload a skill**, and drag and drop the `.zip` file (or you can extract it and drop the folder, both work).
26
26
 
27
27
  > **Note:** For some skills (like `position-me`), the `SKILL.md` file might be located inside a subfolder. Always make sure you are uploading the specific folder that contains the `SKILL.md` file!
28
+
29
+ ## What It Does
30
+
31
+ - Accepts any combination of: product description, category keywords, competitor names
32
+ - Auto-detects relevant subreddits from the category
33
+ - Searches Reddit public JSON API for pain posts (top posts, last 12 months)
34
+ - Searches Hacker News Algolia API for stories and Ask HN threads
35
+ - Searches GitHub Issues on competitor repos for high-reaction complaints
36
+ - Scrapes G2 category pages for vendor count and top products
37
+ - Fetches Google Trends direction (up / flat / down) for the category
38
+ - Scores every signal by source weight and recency (GitHub issues score 3x Reddit -- more deliberate signal)
39
+ - Clusters top 60 signals into 5-7 named pain themes
40
+ - Extracts ICP from subreddit and post metadata (not just content)
41
+ - Generates a positioning framework with messaging angles using verbatim market language
42
+ - Saves output to `docs/market-maps/[category]-[date].md` + JSON snapshot
43
+
44
+ ## Requirements
45
+
46
+ | Requirement | Purpose | How to Set Up |
47
+ |---|---|---|
48
+ | GITHUB_TOKEN | Optional -- improves GitHub Issues rate limit from 60/hr to 5000/hr | github.com/settings/tokens (no scopes needed for public repos) |
49
+
50
+ No other API keys required.
51
+
52
+ ## Setup
53
+
54
+ ```bash
55
+ cp .env.example .env
56
+ # Add GITHUB_TOKEN if you want higher GitHub rate limits
57
+ ```
58
+
59
+ ## How to Use
60
+
61
+ ```
62
+ "Map my market: I build developer observability tools"
63
+ "Who is my ICP? Competitors: Datadog, Grafana, New Relic"
64
+ "What are the top pains in the HR software market?"
65
+ "Find messaging angles for my B2B analytics tool"
66
+ "Map the CRM market. What are people complaining about?"
67
+ "I build payment APIs. Who should I be selling to?"
68
+ ```
69
+
70
+ Include competitor names for richer GitHub Issues data. Include a product description for tailored messaging angles.
71
+
72
+ ## Why This Instead of Manual Research
73
+
74
+ A founder doing this manually would spend 2-3 days:
75
+ - Reading Reddit threads, taking notes
76
+ - Scrolling HN "Ask HN" posts
77
+ - Checking G2 review counts per vendor
78
+ - Looking up Google Trends
79
+ - Synthesizing into a document
80
+
81
+ This skill does the same sweep in 3 minutes and returns verbatim quotes, not paraphrased summaries. The messaging framework uses the exact language your market uses -- not marketing copy you invented.
82
+
83
+ ## The Pain Score
84
+
85
+ `pain_score = base * recency_factor`
86
+
87
+ - GitHub issue reactions: `reactions * 3` -- a developer deliberately clicking +1 is the strongest signal
88
+ - Reddit: `upvotes + (comments * 0.3)` -- upvotes count more than comments (comments include noise)
89
+ - HN: `points + (comments * 0.3)` -- same structure
90
+
91
+ Score tiers: critical (200+), high (50-199), medium (10-49), noise (<10, filtered out).
92
+
93
+ ## Velocity Tracking
94
+
95
+ Run the skill every quarter. JSON snapshots in `docs/market-maps/` let you compare pain cluster rankings over time. A pain that was #3 last quarter and is #1 this quarter is accelerating -- a stronger positioning bet.
96
+
97
+ ## Cost Per Run
98
+
99
+ - Reddit, HN, Google Trends: free, no auth
100
+ - GitHub Issues: free with optional token
101
+ - G2 scrape: free HTML fetch
102
+ - AI analysis: uses the model already running the skill
103
+ - Total: free
104
+
105
+ ## Standalone Script
106
+
107
+ Run data collection without Claude. Useful when you want the raw signals first, then bring them to any AI for analysis.
108
+
109
+ ```bash
110
+ # Basic usage
111
+ python3 scripts/fetch.py "developer observability"
112
+
113
+ # With competitors
114
+ python3 scripts/fetch.py "developer observability" --competitors "Datadog,Grafana,New Relic"
115
+
116
+ # With product context
117
+ python3 scripts/fetch.py "B2B analytics" --context "We help ops teams track spend"
118
+
119
+ # Print to stdout
120
+ python3 scripts/fetch.py "devops tooling" --stdout | jq '.summary'
121
+
122
+ # With GitHub token for higher rate limits
123
+ GITHUB_TOKEN=your_token python3 scripts/fetch.py "CRM software" --competitors "Salesforce,HubSpot" --output results.json
124
+ ```
125
+
126
+ The script writes a JSON file with all raw signals. Open that file with Claude and ask: "Generate a market map and positioning framework from this data."
127
+
128
+ ## Project Structure
129
+
130
+ ```
131
+ map-your-market/
132
+ ├── SKILL.md
133
+ ├── README.md
134
+ ├── .env.example
135
+ ├── scripts/
136
+ │ └── fetch.py standalone data collector
137
+ ├── evals/
138
+ │ └── evals.json
139
+ └── references/
140
+ ├── subreddit-map.md category to subreddit mapping
141
+ ├── pain-scoring.md scoring formula and tier thresholds
142
+ └── icp-signals.md how to extract ICP from post metadata
143
+ ```
144
+
145
+ ## License
146
+
147
+ MIT
@@ -1,4 +1,4 @@
1
- # meeting-brief-generator
1
+ # meeting-brief-generator
2
2
 
3
3
  <img width="1280" height="640" alt="meeting-brief-generator" src="https://github.com/user-attachments/assets/30026bc4-657a-4ce9-8c0e-4dd2654783f8" />
4
4
 
@@ -28,3 +28,87 @@ https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
28
28
  4. Choose the option to **Upload a skill**, and drag and drop the `.zip` file (or you can extract it and drop the folder, both work).
29
29
 
30
30
  > **Note:** For some skills (like `position-me`), the `SKILL.md` file might be located inside a subfolder. Always make sure you are uploading the specific folder that contains the `SKILL.md` file!
31
+
32
+ ## What It Does
33
+
34
+ - Runs 6-8 targeted Tavily searches covering company overview, recent news, tech stack, product, competitors, funding, and contact background
35
+ - Synthesizes results into a structured 1-page brief using Gemini
36
+ - Every claim cites a source URL from the research
37
+ - Optionally saves the brief to a Notion database
38
+ - Handles low-data companies by marking gaps instead of inventing content
39
+
40
+ ## Requirements
41
+
42
+ | Requirement | Purpose | How to Set Up |
43
+ |------------|---------|--------------|
44
+ | Tavily API key | Company research | app.tavily.com, API Keys |
45
+ | Gemini API key | Brief synthesis | aistudio.google.com, Get API key |
46
+ | Notion token (optional) | Saving briefs | notion.so/my-integrations |
47
+
48
+ ## Setup
49
+
50
+ ```bash
51
+ cp .env.example .env
52
+ ```
53
+
54
+ Fill in:
55
+ - `TAVILY_API_KEY` (required)
56
+ - `GEMINI_API_KEY` (required)
57
+ - `NOTION_TOKEN` and `NOTION_DATABASE_ID` (optional, for saving briefs)
58
+
59
+ ## How to Use
60
+
61
+ Basic brief with company only:
62
+
63
+ ```
64
+ "Prepare me for a meeting with Stripe next Tuesday"
65
+ "Generate a meeting brief for Vercel"
66
+ "Research Acme Corp before my call tomorrow"
67
+ ```
68
+
69
+ With contact and meeting type:
70
+
71
+ ```
72
+ "Prepare a discovery call brief for Linear. I'm meeting with the VP Engineering, Jordan Lee."
73
+ "Create a pre-call brief for Notion. Demo call on April 20."
74
+ ```
75
+
76
+ Save to Notion:
77
+
78
+ ```
79
+ "Generate a meeting brief for Figma and save it to Notion"
80
+ ```
81
+
82
+ ## Brief Sections
83
+
84
+ | Section | Content |
85
+ |---------|---------|
86
+ | Company Snapshot | What they do, size, funding stage, HQ |
87
+ | Recent News | Last 30 days, source URLs |
88
+ | Decision Maker | Name, title, background (if contact provided) |
89
+ | Tech Stack Signals | Tools spotted in job posts, blog, GitHub |
90
+ | Competitive Context | Who they compete with and how |
91
+ | Talking Points | Because/mention/to formula, 3-5 bullets |
92
+ | Open Questions | Company-specific discovery questions |
93
+
94
+ ## Output Format
95
+
96
+ One page, under 400 words. Every claim has a source URL. Talking points follow the format: "Because [finding from research], mention [point] to [goal]."
97
+
98
+ ## Project Structure
99
+
100
+ ```
101
+ meeting-brief-generator/
102
+ ├── SKILL.md
103
+ ├── README.md
104
+ ├── .env.example
105
+ ├── evals/
106
+ │ └── evals.json
107
+ └── references/
108
+ ├── brief-format.md
109
+ └── output-template.md
110
+ ```
111
+
112
+ ## License
113
+
114
+ MIT
@@ -1,4 +1,4 @@
1
- # Meta Ads Agentic Skill
1
+ # Meta Ads Agentic Skill
2
2
 
3
3
  <img width="1376" height="768" alt="meta-ads-skill" src="https://github.com/user-attachments/assets/baf2509b-0ee0-41ca-9555-3ad350a6824c" />
4
4
 
@@ -25,3 +25,69 @@ https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
25
25
  4. Choose the option to **Upload a skill**, and drag and drop the `.zip` file (or you can extract it and drop the folder, both work).
26
26
 
27
27
  > **Note:** For some skills (like `position-me`), the `SKILL.md` file might be located inside a subfolder. Always make sure you are uploading the specific folder that contains the `SKILL.md` file!
28
+
29
+ ## Overview
30
+
31
+ The **Meta Ads Skill** is a comprehensive, production-ready skill designed to give LLMs and AI agents expert-level capabilities to orchestrate the official **Meta Ads Python CLI**.
32
+
33
+ By using this skill, an agent transforms into an **Expert Media Buyer**. It will know exactly how to explore ad structures, troubleshoot campaign performance (like CPA spikes), discover new audiences, and format massive Meta APIs JSON payloads into beautiful, readable markdown reports.
34
+
35
+ ---
36
+
37
+ ## For Agents: How to Use This Skill Efficiently
38
+
39
+ This skill is designed using a **Progressive Disclosure (Hub-and-Spoke)** architecture to maximize context window efficiency:
40
+
41
+ 1. **The Hub (`SKILL.md`)**: The primary entry point. It provides strict guardrails, safety protocols, and the authentication troubleshooting workflow.
42
+ 2. **The Spokes (`references/`)**:
43
+ - When you need to perform a specific task (e.g., investigating a CPA spike), read `references/workflows.md` for the exact step-by-step orchestration strategy.
44
+ - When presenting data to the user, read `references/report_templates.md` to strictly follow the required Markdown layout.
45
+
46
+ ### Strict Agent Guardrails
47
+ * **Context Protection**: ALWAYS default to `time_range="last_7d"` for insights. ALWAYS use `limit=10` for listing campaigns/adsets initially.
48
+ * **Safety First**: NEVER execute state-changing tools (`create_campaign`, `update_campaign`) without explicitly showing the parameters to the user and waiting for their affirmative confirmation.
49
+
50
+ ---
51
+
52
+ ## Installation & Setup
53
+
54
+ To use this skill, you must install the official Meta Ads CLI and configure your credentials.
55
+
56
+ ### 1. Install the CLI
57
+ The skill relies on the `meta-ads` Python package:
58
+ ```bash
59
+ pip install meta-ads
60
+ ```
61
+
62
+ ### 2. Authentication (System User Token)
63
+ The CLI uses a **System User Access Token** for authentication.
64
+ 1. Generate a System User Token in your [Meta Business Suite](https://business.facebook.com/settings/system-users).
65
+ 2. Ensure the token has `ads_management`, `ads_read`, and `read_insights` permissions.
66
+ 3. Set the following environment variables on your machine:
67
+
68
+ ```bash
69
+ export ACCESS_TOKEN="your_system_user_access_token"
70
+ export AD_ACCOUNT_ID="act_your_ad_account_id"
71
+ ```
72
+
73
+ ---
74
+
75
+ ## Skill Repository Structure
76
+
77
+ When you deploy this skill, the structure will look like this:
78
+
79
+ ```text
80
+ meta-ads-skill/
81
+ SKILL.md # The core router & guardrails
82
+ references/
83
+ report_templates.md # Standardized markdown report structures
84
+ workflows.md # Orchestration strategies (e.g., CPA troubleshooting)
85
+ ```
86
+
87
+ ## Supported Commands
88
+
89
+ This skill orchestrates the `meta-ads` CLI using a noun-verb structure:
90
+ * **Campaigns**: `meta ads campaign list`, `meta ads campaign create`
91
+ * **Ad Sets**: `meta ads adset list`
92
+ * **Ads**: `meta ads ad list`
93
+ * **Insights**: `meta ads insights get`
@@ -1,4 +1,4 @@
1
- # Meta Tribe Skill
1
+ # Meta Tribe Skill
2
2
 
3
3
  AI Skill that uses Meta's TRIBE v2 fMRI Model to analyze the neuroscience of video hooks, reels, and scripts.
4
4
 
@@ -21,8 +21,6 @@ This skill provides the infrastructure to host the massive 80GB TRIBE v2 model p
21
21
 
22
22
  ## Install
23
23
 
24
- ## Install
25
-
26
24
  ### Video Tutorial
27
25
  Watch this quick video to see how it's done:
28
26
 
@@ -40,3 +38,66 @@ https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
40
38
  4. Choose the option to **Upload a skill**, and drag and drop the `.zip` file (or you can extract it and drop the folder, both work).
41
39
 
42
40
  > **Note:** For some skills (like `position-me`), the `SKILL.md` file might be located inside a subfolder. Always make sure you are uploading the specific folder that contains the `SKILL.md` file!
41
+
42
+ ---
43
+
44
+ ## Deployment Options
45
+
46
+ Because TRIBE v2 requires a massive amount of VRAM (24GB for text, up to 80GB for video), we offer 3 different deployment options so anyone can use it, regardless of budget or technical expertise.
47
+
48
+ ### 1. Google Colab (Zero Cost, Decoupled)
49
+ Best for users without a cloud budget. Colab provides free T4 GPUs.
50
+ * How it works: We use a decoupled architecture. You run the heavy AI inference in a Colab Notebook, which outputs a preds.npy prediction file. You then run a local script on your laptop to generate the report.
51
+ * Setup:
52
+ 1. Open Google Colab and upload the script from scripts/colab_inference.py into a new Notebook.
53
+ 2. Run the notebook. It will output preds.npy and segments.json.
54
+ 3. Download those files to your machine and run: `python scripts/local_analyze.py --preds preds.npy`. This will output a text report and an ASCII terminal graph showing the engagement peaks and valleys.
55
+
56
+ ### 2. RunPod (Serverless, Pay-per-second)
57
+ Best for production agents and developers. You only pay for the seconds the model is running.
58
+ * How it works: We provide a RunPod Handler and a custom Dockerfile that caches the 80GB model inside the image.
59
+ * Setup:
60
+ 1. Build the Docker image using server/Dockerfile.runpod: docker build -f Dockerfile.runpod -t tribe-runpod .
61
+ 2. Push the image to Docker Hub or GHCR.
62
+ 3. Create a new RunPod Serverless Endpoint using your image URL.
63
+ 4. Point your AI Agent to your RunPod Endpoint URL.
64
+
65
+ ### 3. AWS EC2 Persistent (Enterprise, BYO-Compute)
66
+ Best for heavy, continuous usage.
67
+ * How it works: Automatically provisions an AWS g5.12xlarge instance (4x A10G GPUs) and runs a FastAPI server.
68
+ * Setup:
69
+ 1. Ensure your AWS account has a vCPU quota limit of at least 48 for "Running On-Demand G and VT instances".
70
+ 2. Run bash scripts/launch_persistent.sh to provision the instance.
71
+ 3. Run export HF_TOKEN="your_token" followed by bash scripts/deploy_to_persistent.sh to build and launch the Docker API.
72
+
73
+ #### AWS GPU Lifecycle & Estimated Costs
74
+ Running the `g5.12xlarge` instance (4x A10G GPUs) provides incredible speed but costs **$7.09 per hour** on On-Demand pricing. It is crucial to manage this lifecycle.
75
+ 1. **Launch:** Run `bash scripts/launch_persistent.sh` (Takes ~3 minutes).
76
+ 2. **Analyze:** Run your videos through the API.
77
+ 3. **Terminate:** When you are completely finished for the day, you MUST terminate the instance to stop billing.
78
+ - Run `aws ec2 describe-instances --filters "Name=instance-state-name,Values=running"` to find your Instance ID.
79
+ - Run `aws ec2 terminate-instances --instance-ids <YOUR_INSTANCE_ID>`.
80
+ - *Do not just "stop" the instance if you don't want to pay for EBS Volume storage costs overnight. Terminate it.*
81
+
82
+ ---
83
+
84
+ ## HuggingFace Authentication (Required for all methods)
85
+
86
+ TRIBE v2 relies on meta-llama/Llama-3.2-3B, which is a Gated Model.
87
+ 1. Create a HuggingFace account.
88
+ 2. Go to the Llama 3.2 3B page and TRIBE v2 page and agree to Meta's license terms.
89
+ 3. Generate a HuggingFace Access Token (Read permissions) at huggingface.co/settings/tokens.
90
+ 4. Supply this token via the HF_TOKEN environment variable.
91
+
92
+ ---
93
+
94
+ ## The Neuroscience of the Engagement Report
95
+
96
+ The AI agent will read the raw API output and translate the neuroscience into plain English for you:
97
+
98
+ * VAN (Ventral Attention Network): Translated to "Is this surprising enough to stop a scroll?". High VAN means the content is novel and creates a pattern interrupt.
99
+ * DMN (Default Mode Network): Translated to "Will people get bored and tune out?". High DMN is bad. It means the brain is wandering. The AI uses this to identify "Cut Candidates" in your video.
100
+ * DAN (Dorsal Attention Network): Translated to "Are people actively following along?". High DAN means strong logical focus.
101
+ * Limbic Network: Translated to "Does this make people feel something?". High Limbic means strong emotional response.
102
+
103
+ Check out the [Results Showcase](results_showcase.md) for actual examples of Neuro-Marketing reports generated by this skill.
@@ -1,4 +1,4 @@
1
- # newsletter-digest
1
+ # newsletter-digest
2
2
 
3
3
  <img width="1280" height="640" alt="newsletter-digest" src="https://github.com/user-attachments/assets/cb2879ae-eb5c-4727-a1a2-47b4462a699b" />
4
4
 
@@ -28,3 +28,144 @@ https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
28
28
  4. Choose the option to **Upload a skill**, and drag and drop the `.zip` file (or you can extract it and drop the folder, both work).
29
29
 
30
30
  > **Note:** For some skills (like `position-me`), the `SKILL.md` file might be located inside a subfolder. Always make sure you are uploading the specific folder that contains the `SKILL.md` file!
31
+
32
+ ## What It Does
33
+
34
+ - Reads your RSS/Atom feed list from `feeds.json`
35
+ - Fetches all articles published in the last 7 days (configurable)
36
+ - Deduplicates across feeds and sorts by date
37
+ - Uses Gemini to synthesize a digest in your chosen format
38
+ - Publishes to Ghost as a draft or live post
39
+ - Outputs formatted Markdown for Substack, Notion, or any other platform
40
+
41
+ ## Digest Formats
42
+
43
+ | Format | Use When | Target Length |
44
+ |--------|----------|---------------|
45
+ | Weekly Roundup | General digest covering top stories across all feeds | 350-500 words |
46
+ | Topic Deep Dive | Focused issue on a single topic (AI, security, etc.) | 450-650 words |
47
+ | Curated Picks | 5 selected articles with editorial context | 250-350 words |
48
+
49
+ ## Requirements
50
+
51
+ | Requirement | Purpose | Where to Get It |
52
+ |------------|---------|-----------------|
53
+ | GEMINI_API_KEY | Digest synthesis | https://ai.google.dev |
54
+ | GHOST_URL + GHOST_ADMIN_KEY | Ghost publishing (optional) | Ghost Admin, Settings, Integrations |
55
+ | Node.js 20+ | Running scripts | https://nodejs.org |
56
+
57
+ Tavily is not required. The skill uses article excerpts from RSS feeds directly.
58
+
59
+ ## Setup
60
+
61
+ ### 1. Install dependencies
62
+
63
+ ```bash
64
+ cd /path/to/newsletter-digest
65
+ npm install
66
+ ```
67
+
68
+ ### 2. Configure environment variables
69
+
70
+ ```bash
71
+ cp .env.example .env
72
+ # Edit .env with your keys
73
+ ```
74
+
75
+ ### 3. Configure your feeds
76
+
77
+ Edit `feeds.json` with the RSS feeds you want to monitor:
78
+
79
+ ```json
80
+ [
81
+ { "url": "https://hnrss.org/frontpage", "name": "Hacker News" },
82
+ { "url": "https://feeds.feedburner.com/TheHackersNews", "name": "The Hacker News" },
83
+ { "url": "https://changelog.com/feed", "name": "Changelog" }
84
+ ]
85
+ ```
86
+
87
+ The file ships with 5 example feeds. Replace them with your own.
88
+
89
+ ### 4. Set up Ghost publishing (optional)
90
+
91
+ 1. Go to Ghost Admin, Settings, Integrations
92
+ 2. Click "Add custom integration"
93
+ 3. Name it "newsletter-digest"
94
+ 4. Copy the Admin API Key (format: `key_id:secret`)
95
+ 5. Set `GHOST_ADMIN_KEY=key_id:secret` in `.env`
96
+ 6. Set `GHOST_URL=https://your-ghost-site.com` in `.env`
97
+
98
+ ## How to Use
99
+
100
+ Generate a weekly digest:
101
+
102
+ ```
103
+ "Generate a weekly digest from my RSS feeds"
104
+ "Create this week's newsletter"
105
+ "Summarize my feeds from the last 7 days"
106
+ ```
107
+
108
+ Choose a specific format:
109
+
110
+ ```
111
+ "Create a topic deep dive about AI agents from this week's news"
112
+ "Generate a curated picks digest for this week"
113
+ "Write a weekly roundup newsletter"
114
+ ```
115
+
116
+ Extend the date window:
117
+
118
+ ```
119
+ "Generate a digest from the last 14 days"
120
+ "Not many articles this week, extend the window to 2 weeks"
121
+ ```
122
+
123
+ Publish to Ghost:
124
+
125
+ ```
126
+ "Generate this week's digest and publish it to Ghost as a draft"
127
+ "Create the newsletter and publish it to Ghost"
128
+ ```
129
+
130
+ Output for Substack:
131
+
132
+ ```
133
+ "Generate a newsletter digest for Substack"
134
+ "Create the digest and give me the Markdown version"
135
+ ```
136
+
137
+ ## Output
138
+
139
+ | Output | Description |
140
+ |--------|-------------|
141
+ | HTML | Ready to paste into any CMS |
142
+ | Markdown | For Substack, Notion, Hashnode |
143
+ | Plain text | For email clients |
144
+ | Ghost draft | Published automatically if configured |
145
+
146
+ ## Substack Note
147
+
148
+ Substack has no public API. The skill outputs a Markdown version of the digest for you to paste directly into the Substack editor.
149
+
150
+ ## Project Structure
151
+
152
+ ```
153
+ newsletter-digest/
154
+ ├── SKILL.md
155
+ ├── README.md
156
+ ├── .env.example
157
+ ├── package.json
158
+ ├── feeds.json (your RSS feed list, edit this)
159
+ ├── evals/
160
+ │ └── evals.json
161
+ ├── references/
162
+ │ ├── digest-format.md (format rules, length targets, attribution)
163
+ │ └── output-template.md (HTML templates for all 3 formats)
164
+ └── scripts/
165
+ ├── fetch-feeds.js (RSS fetching, dedup, date filtering)
166
+ └── ghost-publish.js (Ghost Admin API posting)
167
+ ```
168
+
169
+ ## License
170
+
171
+ MIT
@@ -79,24 +79,3 @@ Unlike simple text generators, this skill operates as a structured workflow:
79
79
  ## Contributing
80
80
 
81
81
  Pull requests to refine hook patterns, add new slide structures, or include helper scripts that refine raw transcripts are welcome.
82
-
83
-
84
- ## Install
85
-
86
- ### Video Tutorial
87
- Watch this quick video to see how it's done:
88
-
89
- https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
90
-
91
- ### Step 1: Download the skill from GitHub
92
- 1. Copy the URL of this specific skill folder from your browser's address bar.
93
- 2. Go to [download-directory.github.io](https://download-directory.github.io/).
94
- 3. Paste the URL and click **Enter** to download.
95
-
96
- ### Step 2: Install the Skill in Claude
97
- 1. Open your **Claude desktop app**.
98
- 2. Go to the sidebar on the left side and click on the **Customize** section.
99
- 3. Click on the **Skills** tab, then click on the **+** (plus) icon button to create a new skill.
100
- 4. Choose the option to **Upload a skill**, and drag and drop the `.zip` file (or you can extract it and drop the folder, both work).
101
-
102
- > **Note:** For some skills (like `position-me`), the `SKILL.md` file might be located inside a subfolder. Always make sure you are uploading the specific folder that contains the `SKILL.md` file!
@@ -1,4 +1,4 @@
1
- # noise2blog
1
+ # noise2blog
2
2
 
3
3
  <img width="1280" height="640" alt="noise2blog" src="https://github.com/user-attachments/assets/2359cff9-dfd4-4276-bb3e-4b6091ad6983" />
4
4
 
@@ -28,3 +28,104 @@ https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
28
28
  4. Choose the option to **Upload a skill**, and drag and drop the `.zip` file (or you can extract it and drop the folder, both work).
29
29
 
30
30
  > **Note:** For some skills (like `position-me`), the `SKILL.md` file might be located inside a subfolder. Always make sure you are uploading the specific folder that contains the `SKILL.md` file!
31
+
32
+ ## What It Does
33
+
34
+ - Accepts any rough input: bullet points, rough notes, voice transcripts, tweet dumps, short drafts, or a URL
35
+ - Detects the right blog post style automatically (Technical Tutorial, Case Study, Thought Leadership, Explainer)
36
+ - Enriches claims with Tavily research when you set an API key (supporting data, verification)
37
+ - Generates a Markdown post with no AI slop, no em dashes, no banned words
38
+ - Formats frontmatter for Ghost, dev.to, Substack, or Hashnode on request
39
+
40
+ ## Requirements
41
+
42
+ | Requirement | Purpose | How to Set Up |
43
+ |------------|---------|--------------|
44
+ | Google Gemini API key | Generates the blog post | aistudio.google.com, Get API key |
45
+ | Tavily API key (optional) | Enriches claims with research | app.tavily.com, API Keys |
46
+
47
+ No LLM backend to run. The agent calls the Gemini API directly.
48
+
49
+ ## Setup
50
+
51
+ ```bash
52
+ cp .env.example .env
53
+ ```
54
+
55
+ Edit `.env` and fill in:
56
+ - `GEMINI_API_KEY` (required)
57
+ - `TAVILY_API_KEY` (optional, enables research enrichment)
58
+
59
+ ## Blog Post Styles
60
+
61
+ | Style | Use When | Signals in Your Input |
62
+ |-------|----------|----------------------|
63
+ | Technical Tutorial | Step-by-step guide, code walkthrough | Numbered steps, commands, "how to" |
64
+ | Case Study | Build log, before/after story, lessons learned | Specific results, journey narrative |
65
+ | Thought Leadership | Opinion piece, counterintuitive argument | Strong claim, debate framing |
66
+ | Explainer | Explaining a concept or tool to newcomers | Definition-first, comparisons |
67
+
68
+ The agent detects the style automatically. Override it with: "Use Thought Leadership style" or "Make this a tutorial".
69
+
70
+ ## How to Use
71
+
72
+ From pasted notes:
73
+
74
+ ```
75
+ "Write a blog post from these notes: [paste your content]"
76
+ "Turn these bullet points into a blog post"
77
+ "Expand this into an article"
78
+ ```
79
+
80
+ From a voice transcript:
81
+
82
+ ```
83
+ "Turn this transcript into a blog post: [paste transcript]"
84
+ "Clean up this voice note and make it publishable"
85
+ ```
86
+
87
+ From a tweet thread:
88
+
89
+ ```
90
+ "Turn this tweet thread into a blog: [paste tweets]"
91
+ "Expand this thread into a full article"
92
+ ```
93
+
94
+ With style override:
95
+
96
+ ```
97
+ "Write a thought leadership post from these notes"
98
+ "Make this a technical tutorial"
99
+ ```
100
+
101
+ With platform formatting:
102
+
103
+ ```
104
+ "Write the post and format it for dev.to"
105
+ "Give me Ghost frontmatter too"
106
+ ```
107
+
108
+ ## Output
109
+
110
+ - Full blog post in Markdown (800-1,800 words)
111
+ - Meta description (1-2 sentences)
112
+ - Alternative title option
113
+ - Platform-specific frontmatter on request
114
+
115
+ ## Project Structure
116
+
117
+ ```
118
+ noise2blog/
119
+ ├── SKILL.md
120
+ ├── README.md
121
+ ├── .env.example
122
+ ├── evals/
123
+ │ └── evals.json
124
+ └── references/
125
+ ├── blog-format.md
126
+ └── output-template.md
127
+ ```
128
+
129
+ ## License
130
+
131
+ MIT