@opendirectory.dev/skills 0.1.36 → 0.1.37

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opendirectory.dev/skills",
3
- "version": "0.1.36",
3
+ "version": "0.1.37",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "bin": {
package/registry.json CHANGED
@@ -279,6 +279,18 @@
279
279
  "version": "1.0.0",
280
280
  "path": "skills/schema-markup-generator"
281
281
  },
282
+ {
283
+ "name": "sdk-adoption-tracker",
284
+ "description": "Given your SDK or library name, searches GitHub code search for public repos that import or require it, classifies each repo as company org, affili...",
285
+ "tags": [
286
+ "SEO",
287
+ "Branding",
288
+ "Developer Tools"
289
+ ],
290
+ "author": "opendirectory",
291
+ "version": "0.0.1",
292
+ "path": "skills/sdk-adoption-tracker"
293
+ },
282
294
  {
283
295
  "name": "show-hn-writer",
284
296
  "description": "Draft a Show HN post backed by real HN performance data. Uses observed patterns from 250 top HN posts to maximise score.",
@@ -0,0 +1,3 @@
1
+ GITHUB_TOKEN= # required -- github.com/settings/tokens (no scopes needed for public repos)
2
+ # Without it: code search hits a 3 req/min secondary rate limit and fails
3
+ # With it: 10 req/min code search + 5000 req/hr for enrichment
@@ -0,0 +1,153 @@
1
+ # sdk-adoption-tracker
2
+
3
+ Give this skill an SDK or library name. It searches GitHub for public repos that import it, scores each repo by company signal and activity, identifies who is building on you in production, and outputs a ranked adoption report with outreach context for high-signal company repos.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npx "@opendirectory.dev/skills" install sdk-adoption-tracker --target claude
9
+ ```
10
+
11
+ ### Video Tutorial
12
+ Watch this quick video to see how it's done:
13
+
14
+ https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
15
+
16
+ ### Step 1: Download the skill from GitHub
17
+ 1. Copy the URL of this specific skill folder from your browser's address bar.
18
+ 2. Go to [download-directory.github.io](https://download-directory.github.io/).
19
+ 3. Paste the URL and click **Enter** to download.
20
+
21
+ ### Step 2: Install the Skill in Claude
22
+ 1. Open your **Claude desktop app**.
23
+ 2. Go to the sidebar on the left side and click on the **Customize** section.
24
+ 3. Click on the **Skills** tab, then click on the **+** (plus) icon button to create a new skill.
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
+
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