@opendirectory.dev/skills 0.1.64 → 0.1.65
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 +1 -112
- package/skills/brand-alchemy/README.md +1 -31
- package/skills/claude-md-generator/README.md +1 -73
- package/skills/cold-email-verifier/README.md +1 -41
- package/skills/competitor-pr-finder/README.md +1 -69
- package/skills/cook-the-blog/README.md +1 -82
- package/skills/dependency-update-bot/README.md +1 -96
- package/skills/docs-from-code/README.md +1 -93
- package/skills/email-newsletter/README.md +1 -72
- package/skills/explain-this-pr/README.md +1 -69
- package/skills/gh-issue-to-demand-signal/README.md +4 -95
- package/skills/google-trends-api-skills/README.md +1 -74
- package/skills/graphic-case-study/README.md +3 -97
- package/skills/graphic-chart/README.md +19 -0
- package/skills/graphic-ebook/README.md +3 -99
- package/skills/graphic-gif/README.md +19 -0
- package/skills/graphic-slide-deck/README.md +2 -104
- package/skills/hackernews-intel/README.md +1 -156
- package/skills/human-tone/README.md +1 -43
- package/skills/kill-the-standup/README.md +1 -79
- package/skills/linkedin-job-post-to-buyer-pain-map/README.md +3 -3
- package/skills/linkedin-post-generator/README.md +1 -103
- package/skills/llms-txt-generator/README.md +1 -138
- package/skills/luma-attendees-scraper/README.md +21 -0
- package/skills/map-your-market/README.md +1 -121
- package/skills/meeting-brief-generator/README.md +1 -85
- package/skills/meta-ads-skill/README.md +1 -67
- package/skills/meta-tribeV2-skill/README.md +3 -64
- package/skills/newsletter-digest/README.md +1 -142
- package/skills/noise-to-linkedin-carousel/README.md +21 -0
- package/skills/noise2blog/README.md +1 -102
- package/skills/npm-downloads-to-leads/README.md +12 -131
- package/skills/oss-launch-kit/README.md +21 -0
- package/skills/outreach-sequence-builder/README.md +1 -103
- package/skills/position-me/README.md +1 -65
- package/skills/pr-description-writer/README.md +1 -76
- package/skills/pricing-finder/README.md +1 -114
- package/skills/pricing-page-psychology-audit/README.md +1 -85
- package/skills/product-update-logger/README.md +4 -172
- package/skills/producthunt-launch-kit/README.md +1 -90
- package/skills/reddit-icp-monitor/README.md +1 -112
- package/skills/reddit-post-engine/README.md +1 -98
- package/skills/schema-markup-generator/README.md +1 -109
- package/skills/sdk-adoption-tracker/README.md +1 -127
- package/skills/show-hn-writer/README.md +1 -83
- package/skills/stargazer/README.md +21 -0
- package/skills/tweet-thread-from-blog/README.md +1 -104
- package/skills/twitter-GTM-find-skill/README.md +1 -37
- package/skills/vc-curated-match/README.md +21 -0
- package/skills/vc-finder/README.md +5 -98
- package/skills/vid-motion-graphics/README.md +5 -65
- package/skills/where-your-customer-lives/README.md +19 -0
- package/skills/yc-intent-radar-skill/README.md +1 -35
|
@@ -14,7 +14,7 @@ npx "@opendirectory.dev/skills" install reddit-icp-monitor --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/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
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,114 +28,3 @@ https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
|
|
|
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 ICP definition from docs/icp.md (or asks 3 questions to build it)
|
|
35
|
-
- Searches specified subreddits for posts matching your pain point phrases
|
|
36
|
-
- Scores each candidate post 1-5 using Gemini (how clearly does this person have the problem you solve?)
|
|
37
|
-
- Drafts a helpful reply for every post scoring 4 or 5, in the correct mode (vent, how-do-you, or tool recommendation)
|
|
38
|
-
- Enforces a hard rule: replies never name your product unless the post explicitly asks for tool recommendations
|
|
39
|
-
- Saves the full report to docs/reddit-intel/YYYY-MM-DD.md
|
|
40
|
-
|
|
41
|
-
## Requirements
|
|
42
|
-
|
|
43
|
-
| Requirement | Purpose | How to Set Up |
|
|
44
|
-
|------------|---------|--------------|
|
|
45
|
-
| Gemini API key | Relevance scoring and reply drafting | aistudio.google.com, Get API key |
|
|
46
|
-
| Reddit credentials (optional) | Higher rate limit (60 RPM vs 10 RPM) | reddit.com/prefs/apps, create a script app |
|
|
47
|
-
|
|
48
|
-
Reddit credentials are optional. The skill uses Reddit's public JSON endpoints by default, which require no setup and support 10 RPM. That is enough for most monitoring sessions.
|
|
49
|
-
|
|
50
|
-
## Setup
|
|
51
|
-
|
|
52
|
-
```bash
|
|
53
|
-
cp .env.example .env
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
Fill in:
|
|
57
|
-
- `GEMINI_API_KEY` (required)
|
|
58
|
-
- Reddit credentials (optional, see OAuth Upgrade below)
|
|
59
|
-
|
|
60
|
-
## How to Use
|
|
61
|
-
|
|
62
|
-
First run (no docs/icp.md yet):
|
|
63
|
-
```
|
|
64
|
-
"Monitor Reddit for my ICP signals"
|
|
65
|
-
"Scan subreddits for people who need my product"
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
The skill asks 3 questions to build your ICP definition and saves it to docs/icp.md.
|
|
69
|
-
|
|
70
|
-
Subsequent runs (docs/icp.md exists):
|
|
71
|
-
```
|
|
72
|
-
"Check Reddit for buying signals"
|
|
73
|
-
"Run the Reddit ICP monitor for this week"
|
|
74
|
-
"Find ICP posts from the last month"
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
Specify a time window:
|
|
78
|
-
```
|
|
79
|
-
"Monitor Reddit for ICP signals from the last 24 hours"
|
|
80
|
-
"Check Reddit for this month's pain point posts"
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
## Output
|
|
84
|
-
|
|
85
|
-
Each run produces a report with:
|
|
86
|
-
- All subreddits monitored and time window
|
|
87
|
-
- Each high-signal post: title, URL, upvotes, signal quote, matched keyword, post type
|
|
88
|
-
- A drafted reply for each match (2-5 sentences, mode-appropriate)
|
|
89
|
-
- A list of subreddits that returned 0 results (for tuning)
|
|
90
|
-
|
|
91
|
-
Reports are saved to `docs/reddit-intel/YYYY-MM-DD.md`.
|
|
92
|
-
|
|
93
|
-
## Reply Modes
|
|
94
|
-
|
|
95
|
-
The skill classifies each post and drafts in the appropriate mode:
|
|
96
|
-
|
|
97
|
-
| Mode | Post Type | Can Name Product? |
|
|
98
|
-
|------|-----------|------------------|
|
|
99
|
-
| Mode 1 | Venting / frustration | Never |
|
|
100
|
-
| Mode 2 | "How do you handle X?" | Never |
|
|
101
|
-
| Mode 3 | "What tool does X?" | Yes, with one alternative |
|
|
102
|
-
|
|
103
|
-
## Choosing Good Subreddits
|
|
104
|
-
|
|
105
|
-
**Where to monitor (people describing problems):**
|
|
106
|
-
- r/devops, r/ExperiencedDevs, r/sysadmin: engineers asking operational questions
|
|
107
|
-
- r/startups, r/SaaS, r/EntrepreneurRideAlong: founders and operators venting about scaling
|
|
108
|
-
- r/sales, r/marketing: GTM practitioners asking how others handle things
|
|
109
|
-
|
|
110
|
-
**Where not to monitor:**
|
|
111
|
-
- Topic subreddits (r/programming, r/MachineLearning): discussions, not pain points
|
|
112
|
-
- Your product's own subreddit: not monitoring your own community
|
|
113
|
-
- Broad consumer subreddits: not your B2B ICP
|
|
114
|
-
|
|
115
|
-
## OAuth Upgrade
|
|
116
|
-
|
|
117
|
-
If you need more than 10 RPM (large subreddits or frequent runs):
|
|
118
|
-
|
|
119
|
-
1. Go to reddit.com/prefs/apps and create a "script" app
|
|
120
|
-
2. Note: app approval may take several days as of late 2025
|
|
121
|
-
3. Fill in REDDIT_CLIENT_ID, REDDIT_CLIENT_SECRET, REDDIT_USERNAME, REDDIT_PASSWORD in .env
|
|
122
|
-
|
|
123
|
-
With OAuth, the skill fetches a Bearer token at session start and uses the `oauth.reddit.com` endpoint for 60 RPM.
|
|
124
|
-
|
|
125
|
-
## Project Structure
|
|
126
|
-
|
|
127
|
-
```
|
|
128
|
-
reddit-icp-monitor/
|
|
129
|
-
├── SKILL.md
|
|
130
|
-
├── README.md
|
|
131
|
-
├── .env.example
|
|
132
|
-
├── evals/
|
|
133
|
-
│ └── evals.json
|
|
134
|
-
└── references/
|
|
135
|
-
├── icp-format.md
|
|
136
|
-
└── reply-rules.md
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
## License
|
|
140
|
-
|
|
141
|
-
MIT
|
|
@@ -14,7 +14,7 @@ npx "@opendirectory.dev/skills" install reddit-post-engine --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/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
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,100 +28,3 @@ https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
|
|
|
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
|
-
- Fetches the target subreddit's rules and top posts from Reddit's public API
|
|
35
|
-
- Identifies the subreddit's tone and posting conventions
|
|
36
|
-
- Drafts a title and body that match the community's style
|
|
37
|
-
- Keeps product links out of the body (puts them in the first comment)
|
|
38
|
-
- Optionally posts directly via Composio
|
|
39
|
-
- Covers 7 common subreddits with specific playbooks
|
|
40
|
-
|
|
41
|
-
## Requirements
|
|
42
|
-
|
|
43
|
-
| Requirement | Purpose | How to Set Up |
|
|
44
|
-
|------------|---------|--------------|
|
|
45
|
-
| Gemini API key | Post drafting and tone matching | aistudio.google.com, Get API key |
|
|
46
|
-
| Composio Reddit MCP (optional) | Direct posting | app.composio.dev |
|
|
47
|
-
|
|
48
|
-
## Setup
|
|
49
|
-
|
|
50
|
-
### 1. Configure environment variables
|
|
51
|
-
|
|
52
|
-
```bash
|
|
53
|
-
cp .env.example .env
|
|
54
|
-
# Add GEMINI_API_KEY (required)
|
|
55
|
-
# Add COMPOSIO_API_KEY if you want direct posting
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### 2. Connect Reddit via Composio (optional)
|
|
59
|
-
|
|
60
|
-
Direct posting requires a Composio account connected to Reddit OAuth:
|
|
61
|
-
|
|
62
|
-
1. Get your Composio API key at app.composio.dev/settings
|
|
63
|
-
2. Connect Reddit at app.composio.dev/app/reddit
|
|
64
|
-
3. Add the MCP server to Claude Code:
|
|
65
|
-
|
|
66
|
-
```bash
|
|
67
|
-
claude mcp add --transport http reddit-composio \
|
|
68
|
-
"https://mcp.composio.dev/reddit/YOUR_COMPOSIO_API_KEY"
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
4. Verify: `claude mcp list` should show `reddit-composio`
|
|
72
|
-
|
|
73
|
-
Without Composio, the skill drafts posts for manual copy-paste submission.
|
|
74
|
-
|
|
75
|
-
## How to Use
|
|
76
|
-
|
|
77
|
-
Draft a post for a specific subreddit:
|
|
78
|
-
```
|
|
79
|
-
"Help me post my project on r/SideProject"
|
|
80
|
-
"Write a Reddit post for r/devops about my Kubernetes tool"
|
|
81
|
-
"Draft something for r/startups: we hit $1k MRR"
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
With direct posting:
|
|
85
|
-
```
|
|
86
|
-
"Post my project to r/SideProject via Composio"
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
Multi-subreddit drafts:
|
|
90
|
-
```
|
|
91
|
-
"Draft posts for r/SideProject and r/indiehackers for my launch"
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
## Subreddit Playbook Summary
|
|
95
|
-
|
|
96
|
-
| Subreddit | Tone | What Works |
|
|
97
|
-
|-----------|------|------------|
|
|
98
|
-
| r/devops | Technical, direct | Problem + solution + specific numbers |
|
|
99
|
-
| r/SideProject | Personal, builder | Build story + honest state + link in comment |
|
|
100
|
-
| r/startups | Business-focused | Lessons learned + metrics |
|
|
101
|
-
| r/programming | Technical, skeptical | Novel approach + code examples |
|
|
102
|
-
| r/ExperiencedDevs | Senior-level | Nuanced tradeoffs, no hand-holding |
|
|
103
|
-
| r/indiehackers | Transparent | Revenue numbers, real story |
|
|
104
|
-
| r/webdev | Friendly | What you built + how it works |
|
|
105
|
-
|
|
106
|
-
## The 90/10 Rule
|
|
107
|
-
|
|
108
|
-
Reddit detects promotional patterns. For your posts to land well, 90% of your Reddit activity should be genuine community contribution: answering questions, discussing topics, sharing interesting links. At most 10% should be posts about your own work.
|
|
109
|
-
|
|
110
|
-
This skill drafts high-quality posts, but the underlying account reputation matters. New accounts with no history posting self-promotional content often get filtered.
|
|
111
|
-
|
|
112
|
-
## Project Structure
|
|
113
|
-
|
|
114
|
-
```
|
|
115
|
-
reddit-post-engine/
|
|
116
|
-
├── SKILL.md
|
|
117
|
-
├── README.md
|
|
118
|
-
├── .env.example
|
|
119
|
-
├── evals/
|
|
120
|
-
│ └── evals.json
|
|
121
|
-
└── references/
|
|
122
|
-
└── subreddit-playbook.md
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
## License
|
|
126
|
-
|
|
127
|
-
MIT
|
|
@@ -14,7 +14,7 @@ npx "@opendirectory.dev/skills" install schema-markup-generator --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/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
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,111 +28,3 @@ https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
|
|
|
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
|
-
## Schema Types Supported
|
|
33
|
-
|
|
34
|
-
| Type | Use When |
|
|
35
|
-
|------|----------|
|
|
36
|
-
| FAQPage | Page has 2 or more visible question/answer pairs |
|
|
37
|
-
| Article / BlogPosting | Page is a blog post or editorial article |
|
|
38
|
-
| Organization | Page represents a company or institution |
|
|
39
|
-
| Product | Page sells or describes a product with pricing |
|
|
40
|
-
| WebSite | Homepage schema with optional sitelinks search |
|
|
41
|
-
| HowTo | Page is a step-by-step guide with numbered steps |
|
|
42
|
-
| BreadcrumbList | Page has visible breadcrumb navigation |
|
|
43
|
-
| SoftwareApplication | Page describes a software tool or app |
|
|
44
|
-
| LocalBusiness | Page represents a physical business location |
|
|
45
|
-
|
|
46
|
-
The agent detects the right type automatically. A single page often gets multiple types (a blog post gets Article and BreadcrumbList, a homepage gets WebSite and Organization).
|
|
47
|
-
|
|
48
|
-
## Requirements
|
|
49
|
-
|
|
50
|
-
No LLM API key needed. The agent reads the page and generates the markup.
|
|
51
|
-
|
|
52
|
-
Chrome is needed for JavaScript-rendered pages. For static HTML pages or when you paste HTML directly, Chrome is not required.
|
|
53
|
-
|
|
54
|
-
A GitHub token is optional. Without it, the agent outputs the markup as text for you to paste manually.
|
|
55
|
-
|
|
56
|
-
## Setup
|
|
57
|
-
|
|
58
|
-
### 1. Start Chrome with remote debugging (for live URLs)
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
# macOS
|
|
62
|
-
open -a "Google Chrome" --args --remote-debugging-port=9222
|
|
63
|
-
|
|
64
|
-
# Linux
|
|
65
|
-
google-chrome --remote-debugging-port=9222
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
### 2. Configure environment variables (optional)
|
|
69
|
-
|
|
70
|
-
```bash
|
|
71
|
-
cp .env.example .env
|
|
72
|
-
# Add GITHUB_TOKEN if you want auto-PR support
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
## How to Use
|
|
76
|
-
|
|
77
|
-
From a live URL:
|
|
78
|
-
|
|
79
|
-
```
|
|
80
|
-
"Generate schema markup for https://example.com/faq"
|
|
81
|
-
"Add structured data to https://example.com/blog/my-post"
|
|
82
|
-
"What schema markup does this page need? https://example.com/about"
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
From pasted HTML:
|
|
86
|
-
|
|
87
|
-
```
|
|
88
|
-
"Generate schema markup for this page: [paste HTML]"
|
|
89
|
-
"Add JSON-LD to this HTML: [paste HTML]"
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
Targeting a specific type:
|
|
93
|
-
|
|
94
|
-
```
|
|
95
|
-
"Generate FAQPage schema for https://example.com/support"
|
|
96
|
-
"Add Organization schema to our about page: https://example.com/about"
|
|
97
|
-
"Generate Product schema for this page: https://example.com/products/pro"
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
With auto-PR:
|
|
101
|
-
|
|
102
|
-
```
|
|
103
|
-
"Generate schema markup for https://example.com/blog/post and open a GitHub PR"
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
## Output
|
|
107
|
-
|
|
108
|
-
| Output | Description |
|
|
109
|
-
|--------|-------------|
|
|
110
|
-
| JSON-LD script block | One `<script type="application/ld+json">` block per schema type |
|
|
111
|
-
| Placement instructions | Where to insert the block in your HTML or framework |
|
|
112
|
-
| MISSING field list | Required fields not found on the page that you need to fill in |
|
|
113
|
-
| GitHub PR | If GITHUB_TOKEN and GITHUB_REPO are configured and you confirm |
|
|
114
|
-
|
|
115
|
-
## Validate Your Markup
|
|
116
|
-
|
|
117
|
-
After applying the markup, validate it at:
|
|
118
|
-
|
|
119
|
-
- Google Rich Results Test: https://search.google.com/test/rich-results
|
|
120
|
-
- Schema.org Validator: https://validator.schema.org
|
|
121
|
-
|
|
122
|
-
## Project Structure
|
|
123
|
-
|
|
124
|
-
```
|
|
125
|
-
schema-markup-generator/
|
|
126
|
-
├── SKILL.md
|
|
127
|
-
├── README.md
|
|
128
|
-
├── .env.example
|
|
129
|
-
├── evals/
|
|
130
|
-
│ └── evals.json
|
|
131
|
-
└── references/
|
|
132
|
-
├── json-ld-spec.md
|
|
133
|
-
└── output-template.md
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
## License
|
|
137
|
-
|
|
138
|
-
MIT
|
|
@@ -11,7 +11,7 @@ npx "@opendirectory.dev/skills" install sdk-adoption-tracker --target claude
|
|
|
11
11
|
### Video Tutorial
|
|
12
12
|
Watch this quick video to see how it's done:
|
|
13
13
|
|
|
14
|
-
https://github.com/user-attachments/assets/
|
|
14
|
+
https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
15
15
|
|
|
16
16
|
### Step 1: Download the skill from GitHub
|
|
17
17
|
1. Copy the URL of this specific skill folder from your browser's address bar.
|
|
@@ -25,129 +25,3 @@ https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
|
|
|
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
|
-
Note: Upload the folder that contains the `SKILL.md` file.
|
|
30
|
-
|
|
31
|
-
## What It Does
|
|
32
|
-
|
|
33
|
-
- Searches GitHub code for all public repos that import or require the SDK
|
|
34
|
-
- Supports npm, Python, Go, Ruby, and generic import patterns -- auto-detected from the SDK name
|
|
35
|
-
- Filters forks, tutorials, examples, and archived repos from results
|
|
36
|
-
- Classifies each repo: company org, affiliated developer, solo developer, or tutorial noise
|
|
37
|
-
- Scores by adoption signal: org type, company field, stars, recency, fork status
|
|
38
|
-
- Fetches owner profile and top contributor for each high-signal repo
|
|
39
|
-
- Tracks adoption velocity: new repos in last 7, 14, and 30 days
|
|
40
|
-
- Compares to previous snapshot for exact new-adopter count on repeat runs
|
|
41
|
-
- Generates an outreach brief per high-signal company repo: what they are building, who introduced the SDK, and what to say
|
|
42
|
-
- Saves output to `docs/sdk-adopters/[sdk-name]-[date].md`
|
|
43
|
-
|
|
44
|
-
## Requirements
|
|
45
|
-
|
|
46
|
-
| Requirement | Purpose | How to Set Up |
|
|
47
|
-
|---|---|---|
|
|
48
|
-
| GitHub token | Required for code search (unauthenticated limit is 3 req/min, too low to run) | github.com/settings/tokens (no scopes needed for public repos) |
|
|
49
|
-
|
|
50
|
-
## Setup
|
|
51
|
-
|
|
52
|
-
```bash
|
|
53
|
-
cp .env.example .env
|
|
54
|
-
# Add GITHUB_TOKEN
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## How to Use
|
|
58
|
-
|
|
59
|
-
```
|
|
60
|
-
"Who is using my SDK on GitHub? @company/my-sdk"
|
|
61
|
-
"Find companies building on my library: stripe"
|
|
62
|
-
"Track adoption of my Python package: requests"
|
|
63
|
-
"Which orgs import my SDK: @clerk/nextjs"
|
|
64
|
-
"Show me who uses my library and rank by company signal"
|
|
65
|
-
"Find warm leads from SDK adopters: my-package"
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
Include a short description of your product and the skill will tailor the outreach message to your context.
|
|
69
|
-
|
|
70
|
-
## Why Score Instead of Just List
|
|
71
|
-
|
|
72
|
-
A raw GitHub code search for a popular SDK returns tutorials, forks, abandoned side projects, and examples mixed in with real production users. The adoption score separates them:
|
|
73
|
-
|
|
74
|
-
- A company org repo with recent commits and 200 stars scores 130+
|
|
75
|
-
- A tutorial named "learn-stripe-payments" scores below 20 and is excluded
|
|
76
|
-
|
|
77
|
-
The person who added the import in a company repo is the warmest possible lead. They chose the SDK, they understand what it does, and they have an active production use case.
|
|
78
|
-
|
|
79
|
-
## The Adoption Score
|
|
80
|
-
|
|
81
|
-
`score = org_signal + company_field + stars_capped + recency + quality_flags`
|
|
82
|
-
|
|
83
|
-
- Org type (50 points): GitHub Organization accounts are almost always a company or serious team
|
|
84
|
-
- Company field (20 points): user has a company listed on their GitHub profile
|
|
85
|
-
- Stars (up to 50 points): capped at 500 stars to prevent established open-source from dominating
|
|
86
|
-
- Recency (up to 50 points): pushed in last 7 or 30 days
|
|
87
|
-
- Quality (up to 40 points): not a fork, not archived, not a tutorial
|
|
88
|
-
|
|
89
|
-
Score >= 80: full outreach brief generated. Score 40-79: listed in report. Score < 40: counted in breakdown only.
|
|
90
|
-
|
|
91
|
-
## Velocity Tracking
|
|
92
|
-
|
|
93
|
-
Run the skill weekly and save the JSON snapshot. On each subsequent run, the skill compares the current repo list to the previous snapshot and tells you exactly how many new teams adopted the SDK since last time.
|
|
94
|
-
|
|
95
|
-
```
|
|
96
|
-
New repos last 7 days: 3
|
|
97
|
-
New repos last 30 days: 11
|
|
98
|
-
New since last run (7 days ago): 3
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
## Cost Per Run
|
|
102
|
-
|
|
103
|
-
- GitHub Code Search API: free with token
|
|
104
|
-
- GitHub User, Org, Contributors API: free with token
|
|
105
|
-
- AI analysis: uses the model already running the skill; no additional cost
|
|
106
|
-
- Total: free
|
|
107
|
-
|
|
108
|
-
## Standalone Script
|
|
109
|
-
|
|
110
|
-
Run the data-fetching step directly from the terminal without Claude. Useful for scheduled jobs or CI pipelines.
|
|
111
|
-
|
|
112
|
-
```bash
|
|
113
|
-
# Basic usage
|
|
114
|
-
python3 scripts/fetch.py stripe
|
|
115
|
-
|
|
116
|
-
# Python SDK
|
|
117
|
-
python3 scripts/fetch.py requests --ecosystem python
|
|
118
|
-
|
|
119
|
-
# With product context for outreach
|
|
120
|
-
python3 scripts/fetch.py @company/my-sdk --context "We build observability for DevTools"
|
|
121
|
-
|
|
122
|
-
# Exclude the SDK publisher's own repos
|
|
123
|
-
python3 scripts/fetch.py stripe --exclude stripe
|
|
124
|
-
|
|
125
|
-
# Print to stdout
|
|
126
|
-
python3 scripts/fetch.py stripe --stdout | jq '.summary'
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
The script handles Steps 3-5 (code search, scoring, enrichment) and writes a JSON file. Open that file with Claude and ask: "Generate adoption briefs from this SDK data."
|
|
130
|
-
|
|
131
|
-
```bash
|
|
132
|
-
GITHUB_TOKEN=your_token python3 scripts/fetch.py stripe --output results.json
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
## Project Structure
|
|
136
|
-
|
|
137
|
-
```
|
|
138
|
-
sdk-adoption-tracker/
|
|
139
|
-
├── SKILL.md
|
|
140
|
-
├── README.md
|
|
141
|
-
├── .env.example
|
|
142
|
-
├── scripts/
|
|
143
|
-
│ └── fetch.py standalone fetcher (Steps 3-5, no Claude needed)
|
|
144
|
-
├── evals/
|
|
145
|
-
│ └── evals.json
|
|
146
|
-
└── references/
|
|
147
|
-
├── import-patterns.md
|
|
148
|
-
└── scoring-guide.md
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
## License
|
|
152
|
-
|
|
153
|
-
MIT
|
|
@@ -14,7 +14,7 @@ npx "@opendirectory.dev/skills" install show-hn-writer --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/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
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,85 +28,3 @@ https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
|
|
|
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 project context (from README or your answers)
|
|
35
|
-
- Drafts three Show HN title variants in different formats
|
|
36
|
-
- Writes a 150-350 word body following HN community norms
|
|
37
|
-
- Uses Gemini to flag marketing language, vague descriptions, or other HN anti-patterns
|
|
38
|
-
- Runs a self-QA checklist before presenting output
|
|
39
|
-
- Includes submission notes (timing, first-comment strategy, resubmission rules)
|
|
40
|
-
|
|
41
|
-
## Requirements
|
|
42
|
-
|
|
43
|
-
| Requirement | Purpose | How to Set Up |
|
|
44
|
-
|------------|---------|--------------|
|
|
45
|
-
| Gemini API key (optional) | Automated draft review for HN anti-patterns | aistudio.google.com, Get API key |
|
|
46
|
-
|
|
47
|
-
The skill works without Gemini: it runs the manual self-QA checklist instead.
|
|
48
|
-
|
|
49
|
-
## Setup
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
cp .env.example .env
|
|
53
|
-
# Add GEMINI_API_KEY if you want automated review (optional)
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
## How to Use
|
|
57
|
-
|
|
58
|
-
From a README:
|
|
59
|
-
```
|
|
60
|
-
"Write a Show HN post for my project"
|
|
61
|
-
"Help me launch on Hacker News"
|
|
62
|
-
"Draft a Show HN for the project in this repo"
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
With explicit context:
|
|
66
|
-
```
|
|
67
|
-
"Write a Show HN post for [project name]: [what it does]. I built it because [reason]."
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
For a specific title format:
|
|
71
|
-
```
|
|
72
|
-
"Write a Show HN title for my CLI tool that converts JSON to TypeScript interfaces"
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
## Show HN Title Formats
|
|
76
|
-
|
|
77
|
-
| Format | Example | Best For |
|
|
78
|
-
|--------|---------|----------|
|
|
79
|
-
| Product-First | `Show HN: Datasette – Instantly publish SQLite databases to the web` | Single-function tools |
|
|
80
|
-
| Outcome-Focused | `Show HN: Jitsi – Group video calls without an account` | Tools replacing something painful |
|
|
81
|
-
| Technical-Angle | `Show HN: Bun – JavaScript runtime built in Zig` | Dev tools where the implementation matters |
|
|
82
|
-
| Experiment | `Show HN: Ink – React for command-line apps` | Projects challenging a convention |
|
|
83
|
-
|
|
84
|
-
## What Makes a Good Show HN Post
|
|
85
|
-
|
|
86
|
-
**Title:** 60-80 characters. Starts with "Show HN:". En dash separator. No adjectives.
|
|
87
|
-
|
|
88
|
-
**Body:** First-person. 150-350 words. At least one technical detail. Honest about limitations. Ends with an invitation for feedback, not a CTA.
|
|
89
|
-
|
|
90
|
-
**What kills HN posts:**
|
|
91
|
-
- Vague titles ("Show HN: I built a thing for developers")
|
|
92
|
-
- Marketing adjectives ("fast", "simple", "powerful")
|
|
93
|
-
- Asking for upvotes
|
|
94
|
-
- Body that reads like a product page
|
|
95
|
-
|
|
96
|
-
## Project Structure
|
|
97
|
-
|
|
98
|
-
```
|
|
99
|
-
show-hn-writer/
|
|
100
|
-
├── SKILL.md
|
|
101
|
-
├── README.md
|
|
102
|
-
├── .env.example
|
|
103
|
-
├── evals/
|
|
104
|
-
│ └── evals.json
|
|
105
|
-
└── references/
|
|
106
|
-
├── hn-rules.md
|
|
107
|
-
└── title-formulas.md
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
## License
|
|
111
|
-
|
|
112
|
-
MIT
|
|
@@ -77,3 +77,24 @@ Generate a final CSV file for use in other applications.
|
|
|
77
77
|
```bash
|
|
78
78
|
python stargazer-skill/scripts/convert_to_csv.py
|
|
79
79
|
```
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
## Install
|
|
83
|
+
|
|
84
|
+
### Video Tutorial
|
|
85
|
+
Watch this quick video to see how it's done:
|
|
86
|
+
|
|
87
|
+
https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
88
|
+
|
|
89
|
+
### Step 1: Download the skill from GitHub
|
|
90
|
+
1. Copy the URL of this specific skill folder from your browser's address bar.
|
|
91
|
+
2. Go to [download-directory.github.io](https://download-directory.github.io/).
|
|
92
|
+
3. Paste the URL and click **Enter** to download.
|
|
93
|
+
|
|
94
|
+
### Step 2: Install the Skill in Claude
|
|
95
|
+
1. Open your **Claude desktop app**.
|
|
96
|
+
2. Go to the sidebar on the left side and click on the **Customize** section.
|
|
97
|
+
3. Click on the **Skills** tab, then click on the **+** (plus) icon button to create a new skill.
|
|
98
|
+
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).
|
|
99
|
+
|
|
100
|
+
> **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!
|