@opendirectory.dev/skills 0.1.65 → 0.1.66
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.
- package/package.json +1 -1
- package/skills/blog-cover-image-cli/README.md +112 -1
- package/skills/brand-alchemy/README.md +31 -1
- package/skills/claude-md-generator/README.md +73 -1
- package/skills/cold-email-verifier/README.md +41 -1
- package/skills/competitor-pr-finder/README.md +69 -1
- package/skills/cook-the-blog/README.md +82 -1
- package/skills/dependency-update-bot/README.md +96 -1
- package/skills/docs-from-code/README.md +93 -1
- package/skills/email-newsletter/README.md +72 -1
- package/skills/explain-this-pr/README.md +69 -1
- package/skills/gh-issue-to-demand-signal/README.md +95 -4
- package/skills/google-trends-api-skills/README.md +74 -1
- package/skills/graphic-case-study/README.md +97 -3
- package/skills/graphic-chart/README.md +0 -19
- package/skills/graphic-ebook/README.md +99 -3
- package/skills/graphic-gif/README.md +0 -19
- package/skills/graphic-slide-deck/README.md +104 -2
- package/skills/hackernews-intel/README.md +156 -1
- package/skills/human-tone/README.md +43 -1
- package/skills/kill-the-standup/README.md +79 -1
- package/skills/linkedin-job-post-to-buyer-pain-map/README.md +3 -3
- package/skills/linkedin-post-generator/README.md +103 -1
- package/skills/llms-txt-generator/README.md +138 -1
- package/skills/luma-attendees-scraper/README.md +0 -21
- package/skills/map-your-market/README.md +121 -1
- package/skills/meeting-brief-generator/README.md +85 -1
- package/skills/meta-ads-skill/README.md +67 -1
- package/skills/meta-tribeV2-skill/README.md +64 -3
- package/skills/newsletter-digest/README.md +142 -1
- package/skills/noise-to-linkedin-carousel/README.md +0 -21
- package/skills/noise2blog/README.md +102 -1
- package/skills/npm-downloads-to-leads/README.md +131 -12
- package/skills/oss-launch-kit/README.md +0 -21
- package/skills/outreach-sequence-builder/README.md +103 -1
- package/skills/position-me/README.md +65 -1
- package/skills/pr-description-writer/README.md +76 -1
- package/skills/pricing-finder/README.md +114 -1
- package/skills/pricing-page-psychology-audit/README.md +85 -1
- package/skills/product-update-logger/README.md +172 -4
- package/skills/producthunt-launch-kit/README.md +90 -1
- package/skills/reddit-icp-monitor/README.md +112 -1
- package/skills/reddit-post-engine/README.md +98 -1
- package/skills/schema-markup-generator/README.md +109 -1
- package/skills/sdk-adoption-tracker/README.md +127 -1
- package/skills/show-hn-writer/README.md +83 -1
- package/skills/stargazer/README.md +0 -21
- package/skills/tweet-thread-from-blog/README.md +104 -1
- package/skills/twitter-GTM-find-skill/README.md +37 -1
- package/skills/vc-curated-match/README.md +0 -21
- package/skills/vc-finder/README.md +98 -5
- package/skills/vid-motion-graphics/README.md +65 -5
- package/skills/where-your-customer-lives/README.md +0 -19
- package/skills/yc-intent-radar-skill/README.md +35 -1
|
@@ -14,7 +14,7 @@ npx "@opendirectory.dev/skills" install newsletter-digest --target claude
|
|
|
14
14
|
### Video Tutorial
|
|
15
15
|
Watch this quick video to see how it's done:
|
|
16
16
|
|
|
17
|
-
https://github.com/user-attachments/assets/
|
|
17
|
+
https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
|
|
18
18
|
|
|
19
19
|
### Step 1: Download the skill from GitHub
|
|
20
20
|
1. Copy the URL of this specific skill folder from your browser's address bar.
|
|
@@ -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!
|
|
@@ -14,7 +14,7 @@ npx "@opendirectory.dev/skills" install noise2blog --target claude
|
|
|
14
14
|
### Video Tutorial
|
|
15
15
|
Watch this quick video to see how it's done:
|
|
16
16
|
|
|
17
|
-
https://github.com/user-attachments/assets/
|
|
17
|
+
https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
|
|
18
18
|
|
|
19
19
|
### Step 1: Download the skill from GitHub
|
|
20
20
|
1. Copy the URL of this specific skill folder from your browser's address bar.
|
|
@@ -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
|
|
@@ -9,19 +9,138 @@ npx "@opendirectory.dev/skills" install npm-downloads-to-leads --target claude
|
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
### Video Tutorial
|
|
12
|
-
Watch this quick video to see how it's done:
|
|
13
12
|
|
|
14
|
-
https://github.com/user-attachments/assets/
|
|
13
|
+
https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
|
|
15
14
|
|
|
16
|
-
### Step 1: Download
|
|
17
|
-
1.
|
|
18
|
-
2.
|
|
19
|
-
3.
|
|
15
|
+
### Step 1: Download from GitHub
|
|
16
|
+
1. Click the **Code** button on this repo's GitHub page.
|
|
17
|
+
2. Select **Download ZIP**.
|
|
18
|
+
3. Extract the ZIP on your computer.
|
|
20
19
|
|
|
21
|
-
### Step 2: Install
|
|
22
|
-
1. Open
|
|
23
|
-
2. Go to
|
|
24
|
-
3. Click
|
|
25
|
-
4. Choose
|
|
20
|
+
### Step 2: Install in Claude
|
|
21
|
+
1. Open the **Claude desktop app**.
|
|
22
|
+
2. Go to **Customize** in the sidebar.
|
|
23
|
+
3. Click the **Skills** tab, then the **+** button.
|
|
24
|
+
4. Choose **Upload a skill** and drop the folder or ZIP file.
|
|
26
25
|
|
|
27
|
-
|
|
26
|
+
Note: Upload the folder that contains the `SKILL.md` file.
|
|
27
|
+
|
|
28
|
+
## What It Does
|
|
29
|
+
|
|
30
|
+
- Fetches 12 weeks of daily download data per package from the npm Downloads API
|
|
31
|
+
- Aggregates to weekly buckets and computes a velocity score: recent growth x acceleration x sweet-spot multiplier
|
|
32
|
+
- Classifies each package as BREAKOUT, WATCHING, steady, established, or too early
|
|
33
|
+
- Fetches maintainer profiles from the npm registry and GitHub API
|
|
34
|
+
- Extracts GitHub followers, Twitter handle, bio, and company from each maintainer's GitHub profile
|
|
35
|
+
- Generates a lead brief per breakout package: growth story, contact signals, why to reach out now, and a suggested first message
|
|
36
|
+
- Saves output to `docs/npm-leads/[date].md`
|
|
37
|
+
|
|
38
|
+
## Requirements
|
|
39
|
+
|
|
40
|
+
| Requirement | Purpose | How to Set Up |
|
|
41
|
+
|---|---|---|
|
|
42
|
+
| GitHub token | Raises rate limit from 60/hr to 5000/hr for maintainer profile lookups | github.com/settings/tokens (no scopes needed for public user profiles) |
|
|
43
|
+
|
|
44
|
+
No external AI API key needed. The npm and npm registry APIs are fully public with no auth. GitHub token is optional but recommended for lists larger than 10 packages.
|
|
45
|
+
|
|
46
|
+
## Setup
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
cp .env.example .env
|
|
50
|
+
# Add GITHUB_TOKEN (optional, recommended for larger package lists)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## How to Use
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
"Find leads from these npm packages: esbuild, vite, @hono/hono, zod"
|
|
57
|
+
"Track download trends for competitor packages: turbo, nx, lerna"
|
|
58
|
+
"Who maintains these breakout npm packages? bun, oxc-parser, biome"
|
|
59
|
+
"Find evangelists before they are famous: @effect-ts/core, fp-ts, zod"
|
|
60
|
+
"Analyze npm momentum for my space: my-package, competitor-a, competitor-b"
|
|
61
|
+
"Map npm maintainers to Twitter for these packages: ..."
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Include a short description of your product and the skill will tailor the outreach message to your context.
|
|
65
|
+
|
|
66
|
+
## Why Velocity Score, Not Raw Downloads
|
|
67
|
+
|
|
68
|
+
React gets 50 million downloads a week. Its maintainers are already famous, already inundated with outreach, and already aligned with a framework you are likely building on.
|
|
69
|
+
|
|
70
|
+
The velocity score finds the package going from 1K to 8K weekly downloads over 8 weeks. That maintainer just crossed a growth inflection. They are building an audience, they are not yet overwhelmed, and they are in a phase where your product makes a difference to their workflow.
|
|
71
|
+
|
|
72
|
+
The formula: `velocity_score = growth_ratio x acceleration x sweet_spot_multiplier`
|
|
73
|
+
|
|
74
|
+
- `growth_ratio`: recent 4-week average divided by prior 4-week average
|
|
75
|
+
- `acceleration`: last 2 weeks vs mid 2 weeks (is growth speeding up?)
|
|
76
|
+
- `sweet_spot_multiplier`: 1.0 for 500 to 500K weekly downloads, lower for noise floor or established giants
|
|
77
|
+
|
|
78
|
+
Breakout threshold: velocity score above 80 AND 500 to 500K weekly downloads.
|
|
79
|
+
|
|
80
|
+
## The Lead Brief
|
|
81
|
+
|
|
82
|
+
For each breakout and watching package:
|
|
83
|
+
|
|
84
|
+
- **Growth story**: exact download numbers, 8-week comparison, weekly trend
|
|
85
|
+
- **Maintainer profile**: GitHub handle, Twitter, bio, company, follower count
|
|
86
|
+
- **Why reach out now**: specific to this package's growth inflection point
|
|
87
|
+
- **Suggested first message**: names the package, its growth, and connects to your product context
|
|
88
|
+
|
|
89
|
+
## Cost Per Run
|
|
90
|
+
|
|
91
|
+
- npm Downloads API: free, no auth, no rate limit concerns
|
|
92
|
+
- npm Registry API: free, no auth
|
|
93
|
+
- GitHub API: free (60 req/hr unauthenticated, 5000/hr with token)
|
|
94
|
+
- AI analysis: uses the model already running the skill; no additional cost
|
|
95
|
+
- Total: free
|
|
96
|
+
|
|
97
|
+
## Standalone Script
|
|
98
|
+
|
|
99
|
+
Run the data fetching step directly from the terminal without Claude. Useful for scheduled jobs, CI pipelines, or exploring data before generating lead briefs.
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
# Basic usage
|
|
103
|
+
python3 scripts/fetch.py esbuild zod @hono/hono
|
|
104
|
+
|
|
105
|
+
# With product context
|
|
106
|
+
python3 scripts/fetch.py esbuild zod --context "We build a TypeScript DX platform"
|
|
107
|
+
|
|
108
|
+
# From a file (one package per line)
|
|
109
|
+
python3 scripts/fetch.py --file packages.txt --output results.json
|
|
110
|
+
|
|
111
|
+
# Print to stdout
|
|
112
|
+
python3 scripts/fetch.py esbuild zod --stdout | jq '.summary'
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
The script handles Steps 3 to 5 (download fetch, velocity scoring, maintainer enrichment) and writes a JSON file. Open that file with Claude and ask: "Generate lead briefs from this npm data."
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
GITHUB_TOKEN=your_token python3 scripts/fetch.py esbuild zod @hono/hono
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Script output fields per package:
|
|
122
|
+
|
|
123
|
+
- `velocity_score`, `growth_pct`, `recent_4_avg`, `prior_4_avg`, `tier`
|
|
124
|
+
- `weeks`: array of 12 weekly download counts, oldest to newest
|
|
125
|
+
- `profile.description`, `profile.keywords`, `profile.npm_maintainers`
|
|
126
|
+
- `profile.github_users`: array with `username`, `twitter_username`, `followers`, `bio`, `company`
|
|
127
|
+
|
|
128
|
+
## Project Structure
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
npm-downloads-to-leads/
|
|
132
|
+
├── SKILL.md
|
|
133
|
+
├── README.md
|
|
134
|
+
├── .env.example
|
|
135
|
+
├── scripts/
|
|
136
|
+
│ └── fetch.py standalone data fetcher (Steps 3 to 5, no Claude needed)
|
|
137
|
+
├── evals/
|
|
138
|
+
│ └── evals.json
|
|
139
|
+
└── references/
|
|
140
|
+
├── velocity-scoring.md
|
|
141
|
+
└── outreach-timing.md
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## License
|
|
145
|
+
|
|
146
|
+
MIT
|
|
@@ -25,24 +25,3 @@ Unlike single-channel generators, `oss-launch-kit` acts as the **Root Strategy L
|
|
|
25
25
|
1. It tells you **if and where** you should launch.
|
|
26
26
|
2. It provides a **timed checklist** for coordination.
|
|
27
27
|
3. It hands off to **specialized skills** for channel-specific drafting.
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
## Install
|
|
31
|
-
|
|
32
|
-
### Video Tutorial
|
|
33
|
-
Watch this quick video to see how it's done:
|
|
34
|
-
|
|
35
|
-
https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
36
|
-
|
|
37
|
-
### Step 1: Download the skill from GitHub
|
|
38
|
-
1. Copy the URL of this specific skill folder from your browser's address bar.
|
|
39
|
-
2. Go to [download-directory.github.io](https://download-directory.github.io/).
|
|
40
|
-
3. Paste the URL and click **Enter** to download.
|
|
41
|
-
|
|
42
|
-
### Step 2: Install the Skill in Claude
|
|
43
|
-
1. Open your **Claude desktop app**.
|
|
44
|
-
2. Go to the sidebar on the left side and click on the **Customize** section.
|
|
45
|
-
3. Click on the **Skills** tab, then click on the **+** (plus) icon button to create a new skill.
|
|
46
|
-
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).
|
|
47
|
-
|
|
48
|
-
> **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!
|
|
@@ -14,7 +14,7 @@ npx "@opendirectory.dev/skills" install outreach-sequence-builder --target claud
|
|
|
14
14
|
### Video Tutorial
|
|
15
15
|
Watch this quick video to see how it's done:
|
|
16
16
|
|
|
17
|
-
https://github.com/user-attachments/assets/
|
|
17
|
+
https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
|
|
18
18
|
|
|
19
19
|
### Step 1: Download the skill from GitHub
|
|
20
20
|
1. Copy the URL of this specific skill folder from your browser's address bar.
|
|
@@ -28,3 +28,105 @@ 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
|
+
- Identifies the signal type from 7 categories: Post-Fundraise, Hiring Signal, Competitor Displacement, Product Launch, Content Engagement, Event Follow-up, Job Change
|
|
35
|
+
- Loads your ICP from docs/icp.md or asks 4 questions to define target persona and pain points
|
|
36
|
+
- Develops the Insight, Bridge, Opener, and Ask for the specific signal
|
|
37
|
+
- Plans a 4-6 touchpoint channel sequence over 10-14 days
|
|
38
|
+
- Generates all messages with Gemini, enforcing hard limits (100-word emails, 300-character LinkedIn notes, 20-word phone openers)
|
|
39
|
+
- Pre-empts 2-4 objections woven into existing touchpoints
|
|
40
|
+
- Runs a 13-point QA pass before presenting the sequence
|
|
41
|
+
- Saves the sequence to docs/sequences/ and optionally drafts emails in Gmail via Composio
|
|
42
|
+
|
|
43
|
+
## Requirements
|
|
44
|
+
|
|
45
|
+
| Requirement | Purpose | How to Set Up |
|
|
46
|
+
|------------|---------|--------------|
|
|
47
|
+
| Gemini API key | Sequence generation | aistudio.google.com, Get API key |
|
|
48
|
+
| Composio API key (optional) | Gmail draft creation | app.composio.dev, API Keys |
|
|
49
|
+
|
|
50
|
+
## Setup
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
cp .env.example .env
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Fill in:
|
|
57
|
+
- `GEMINI_API_KEY` (required)
|
|
58
|
+
- `COMPOSIO_API_KEY` (optional, for Gmail draft creation)
|
|
59
|
+
|
|
60
|
+
Optional: create `docs/icp.md` with your target personas, company profile, pain points, and differentiators. If the file does not exist, the skill asks 4 questions before generating.
|
|
61
|
+
|
|
62
|
+
## How to Use
|
|
63
|
+
|
|
64
|
+
Basic sequence from a signal:
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
"Build an outreach sequence for a prospect who just raised a Series B"
|
|
68
|
+
"They're hiring 8 engineers — write me a sequence"
|
|
69
|
+
"Create outreach based on this signal: they just launched a new product"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
With contact context:
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
"Build an outreach sequence for Sarah Chen, VP Sales at Momentum CRM — they just raised $22M Series B"
|
|
76
|
+
"They switched from Salesforce and posted a frustrated LinkedIn comment. Write a competitor displacement sequence."
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
With Gmail drafting:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
"Build a post-fundraise sequence and draft the emails in Gmail"
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Signal Types
|
|
86
|
+
|
|
87
|
+
| Signal | Definition | Window |
|
|
88
|
+
|--------|-----------|--------|
|
|
89
|
+
| Post-Fundraise | Company raised a round in the last 30 days | 48 hours from announcement |
|
|
90
|
+
| Hiring Signal | Company posted 5 or more roles in a function you serve | Within the week posts appear |
|
|
91
|
+
| Competitor Displacement | Contact is using a competitor and showing frustration | Within 24 hours |
|
|
92
|
+
| Product Launch | Company launched a new product or major feature | 2-4 weeks after launch |
|
|
93
|
+
| Content Engagement | Contact liked, commented, or shared your content | Start on LinkedIn first |
|
|
94
|
+
| Event Follow-up | You met at a conference or webinar | Within 48 hours of event |
|
|
95
|
+
| Job Change | Contact moved to a new company in the last 60 days | Within 2 weeks of announcement |
|
|
96
|
+
|
|
97
|
+
## Message Rules
|
|
98
|
+
|
|
99
|
+
- Only `{{first_name}}` is allowed as a variable. All other details must be filled in from context.
|
|
100
|
+
- Email bodies: 100 words maximum.
|
|
101
|
+
- LinkedIn notes: 300 characters maximum.
|
|
102
|
+
- Phone openers: 20 words maximum.
|
|
103
|
+
- No placeholders like `[Company Name]` or `[INSERT PAIN POINT]`. If the information is not available, the skill asks before writing.
|
|
104
|
+
|
|
105
|
+
## Output
|
|
106
|
+
|
|
107
|
+
The sequence is saved to `docs/sequences/{signal-type}.md`. Each touchpoint includes:
|
|
108
|
+
|
|
109
|
+
- Channel and day number
|
|
110
|
+
- Two subject line variants (email)
|
|
111
|
+
- Message body
|
|
112
|
+
- Word count (email) or character count (LinkedIn)
|
|
113
|
+
- Phone talk track with voicemail script
|
|
114
|
+
|
|
115
|
+
## Project Structure
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
outreach-sequence-builder/
|
|
119
|
+
├── SKILL.md
|
|
120
|
+
├── README.md
|
|
121
|
+
├── .env.example
|
|
122
|
+
├── evals/
|
|
123
|
+
│ └── evals.json
|
|
124
|
+
└── references/
|
|
125
|
+
├── signal-playbook.md
|
|
126
|
+
├── sequence-format.md
|
|
127
|
+
└── output-template.md
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## License
|
|
131
|
+
|
|
132
|
+
MIT
|
|
@@ -15,7 +15,7 @@ npx "@opendirectory.dev/skills" install position-me --target claude
|
|
|
15
15
|
### Video Tutorial
|
|
16
16
|
Watch this quick video to see how it's done:
|
|
17
17
|
|
|
18
|
-
https://github.com/user-attachments/assets/
|
|
18
|
+
https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
|
|
19
19
|
|
|
20
20
|
### Step 1: Download the skill from GitHub
|
|
21
21
|
1. Copy the URL of this specific skill folder from your browser's address bar.
|
|
@@ -29,3 +29,67 @@ https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
|
29
29
|
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).
|
|
30
30
|
|
|
31
31
|
> **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!
|
|
32
|
+
|
|
33
|
+
## Core Capabilities
|
|
34
|
+
|
|
35
|
+
When invoked, the skill commands the AI agent to conduct an exhaustive teardown of the target website through a rigid protocol:
|
|
36
|
+
|
|
37
|
+
* Autonomous Navigation: Crawl the homepage, about, pricing, and blog pages.
|
|
38
|
+
* Visual Psychology: Take full page screenshots and analyze visual friction, layout flow, and cognitive load using the LIFT model.
|
|
39
|
+
* Copywriting Critique: Rewrite generic text using the PAS (Problem, Agitation, Solution) framework.
|
|
40
|
+
* Deep Content Audits: Read actual blog posts to identify fluff, grade technical depth, and offer new content strategies.
|
|
41
|
+
* Technical Readiness: Verify the presence of llms.txt, sitemap.xml, and semantic JSON-LD Schema (FAQPage, SoftwareApplication, etc) for generative search optimization.
|
|
42
|
+
|
|
43
|
+
## Requirements
|
|
44
|
+
|
|
45
|
+
The host AI agent must have access to:
|
|
46
|
+
1. A multimodal LLM capable of analyzing screenshots natively.
|
|
47
|
+
2. Chrome DevTools MCP Server (https://github.com/ChromeDevTools/chrome-devtools-mcp).
|
|
48
|
+
3. Chrome CDP Skill (https://github.com/pasky/chrome-cdp-skill).
|
|
49
|
+
4. Terminal access to run fallback Python scripts if browser automation fails.
|
|
50
|
+
|
|
51
|
+
To set up the required Chrome automation:
|
|
52
|
+
* Install and configure the Chrome DevTools MCP server in the agent MCP settings.
|
|
53
|
+
* Add the Chrome CDP skill to the agent skills directory.
|
|
54
|
+
* Ensure Chrome is running with remote debugging enabled (e.g., `chrome --remote-debugging-port=9222`).
|
|
55
|
+
|
|
56
|
+
## Installation Instructions
|
|
57
|
+
|
|
58
|
+
### For Developers (Manual Setup)
|
|
59
|
+
|
|
60
|
+
1. Clone or download the `position-me` repository.
|
|
61
|
+
2. Copy the `position-me/` directory into the agent designated skills directory.
|
|
62
|
+
3. Alternatively, extract the raw `SKILL.md` and `references/` folder into the agent custom prompt configuration.
|
|
63
|
+
|
|
64
|
+
### For AI Agents (Automated Setup)
|
|
65
|
+
|
|
66
|
+
1. Clone or download the `position-me` repository into the active project workspace.
|
|
67
|
+
2. Read directly from the `position-me/` source folder.
|
|
68
|
+
3. Add the `SKILL.md` file to the active context window or skill registry.
|
|
69
|
+
4. Verify access to the `references/EVALUATION_SOP.md` and `references/REPORT_TEMPLATE.md` files.
|
|
70
|
+
|
|
71
|
+
## Execution Protocol for Agents
|
|
72
|
+
|
|
73
|
+
Once loaded, the AI agent must strictly follow this execution loop:
|
|
74
|
+
|
|
75
|
+
1. Data Gathering: Prompt the user for the target URL.
|
|
76
|
+
2. Connect to Browser: Use the Chrome DevTools MCP combined with the Chrome CDP skill.
|
|
77
|
+
3. Multi-Page Crawl: Navigate to the homepage, pricing page, about page, and at least one blog post.
|
|
78
|
+
4. Capture Vision Context: Take screenshots of every visited page and load them into memory.
|
|
79
|
+
5. Extract DOM Context: Pull the accessibility tree, search for `llms.txt`, and verify JSON-LD schemas.
|
|
80
|
+
6. Analyze: Apply the frameworks specified in `references/EVALUATION_SOP.md`.
|
|
81
|
+
7. Report: Generate a scored, highly structured teardown using exactly the format in `references/REPORT_TEMPLATE.md`.
|
|
82
|
+
|
|
83
|
+
## Project Structure
|
|
84
|
+
|
|
85
|
+
```text
|
|
86
|
+
position-me/
|
|
87
|
+
├── README.md # Documentation
|
|
88
|
+
└── position-me/ # Raw skill source code
|
|
89
|
+
├── SKILL.md # Master protocol
|
|
90
|
+
├── scripts/
|
|
91
|
+
│ └── extract_links.py # Fallback crawler script
|
|
92
|
+
└── references/
|
|
93
|
+
├── EVALUATION_SOP.md # Evaluation frameworks
|
|
94
|
+
└── REPORT_TEMPLATE.md # Teardown report template
|
|
95
|
+
```
|