@opendirectory.dev/skills 0.1.38 → 0.1.40
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/registry.json +24 -2
- package/skills/map-your-market/SKILL.md +1 -9
- package/skills/product-update-logger/.env.example +4 -0
- package/skills/product-update-logger/README.md +197 -0
- package/skills/product-update-logger/SKILL.md +462 -0
- package/skills/product-update-logger/evals/evals.json +119 -0
- package/skills/product-update-logger/references/changelog-format.md +96 -0
- package/skills/product-update-logger/references/content-rules.md +154 -0
- package/skills/product-update-logger/references/noise-filter.md +86 -0
- package/skills/product-update-logger/scripts/gather.py +364 -0
- package/skills/where-your-customer-lives/.env.example +4 -0
- package/skills/where-your-customer-lives/README.md +135 -0
- package/skills/where-your-customer-lives/SKILL.md +515 -0
- package/skills/where-your-customer-lives/evals/evals.json +108 -0
- package/skills/where-your-customer-lives/references/channel-types.md +147 -0
- package/skills/where-your-customer-lives/references/entry-tactics.md +179 -0
- package/skills/where-your-customer-lives/references/scoring-guide.md +141 -0
- package/skills/where-your-customer-lives/scripts/fetch.py +810 -0
package/package.json
CHANGED
package/registry.json
CHANGED
|
@@ -151,8 +151,12 @@
|
|
|
151
151
|
},
|
|
152
152
|
{
|
|
153
153
|
"name": "map-your-market",
|
|
154
|
-
"description": "
|
|
155
|
-
"tags": [
|
|
154
|
+
"description": "Given a product description, category keywords, or competitor names (any combination), searches Reddit, Hacker News, GitHub Issues, G2, and Google...",
|
|
155
|
+
"tags": [
|
|
156
|
+
"SEO",
|
|
157
|
+
"Branding",
|
|
158
|
+
"Developer Tools"
|
|
159
|
+
],
|
|
156
160
|
"author": "opendirectory",
|
|
157
161
|
"version": "0.0.1",
|
|
158
162
|
"path": "skills/map-your-market"
|
|
@@ -248,6 +252,14 @@
|
|
|
248
252
|
"version": "1.0.0",
|
|
249
253
|
"path": "skills/pricing-page-psychology-audit"
|
|
250
254
|
},
|
|
255
|
+
{
|
|
256
|
+
"name": "product-update-logger",
|
|
257
|
+
"description": "Tell the skill what your product shipped.",
|
|
258
|
+
"tags": [],
|
|
259
|
+
"author": "opendirectory",
|
|
260
|
+
"version": "0.0.1",
|
|
261
|
+
"path": "skills/product-update-logger"
|
|
262
|
+
},
|
|
251
263
|
{
|
|
252
264
|
"name": "producthunt-launch-kit",
|
|
253
265
|
"description": "Generate every asset you need for a Product Hunt launch: listing copy, maker comment, and day-one social posts.",
|
|
@@ -339,6 +351,16 @@
|
|
|
339
351
|
"version": "0.0.1",
|
|
340
352
|
"path": "skills/vc-finder"
|
|
341
353
|
},
|
|
354
|
+
{
|
|
355
|
+
"name": "where-your-customer-lives",
|
|
356
|
+
"description": "Given a product utility and ICP, researches the internet to find the specific channels.",
|
|
357
|
+
"tags": [
|
|
358
|
+
"SEO"
|
|
359
|
+
],
|
|
360
|
+
"author": "opendirectory",
|
|
361
|
+
"version": "0.0.1",
|
|
362
|
+
"path": "skills/where-your-customer-lives"
|
|
363
|
+
},
|
|
342
364
|
{
|
|
343
365
|
"name": "yc-intent-radar-skill",
|
|
344
366
|
"description": "Scrape daily job listings from YCombinator's Workatastartup platform without duplicates.",
|
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: map-your-market
|
|
3
|
-
description:
|
|
4
|
-
Given a product description, category keywords, or competitor names (any combination), searches
|
|
5
|
-
Reddit, Hacker News, GitHub Issues, G2, and Google Trends for the real pains your market
|
|
6
|
-
experiences -- then synthesizes everything into a positioning framework showing who your ICP is,
|
|
7
|
-
what they say out loud, and exactly how to talk to them. Use when asked to understand a market,
|
|
8
|
-
find ICP pain points, map competitors, build a positioning doc, find messaging angles, or answer
|
|
9
|
-
who is my customer and what do they actually care about. Trigger when a user says map my market,
|
|
10
|
-
who is my ICP, what pains does my market have, understand my market, find my target customer,
|
|
11
|
-
what are the top complaints in X space, help me position my product, or who should I be selling to.
|
|
3
|
+
description: Given a product description, category keywords, or competitor names (any combination), searches Reddit, Hacker News, GitHub Issues, G2, and Google Trends for the real pains your market experiences, then synthesizes everything into a positioning framework showing who your ICP is, what they say out loud, and exactly how to talk to them. Use when asked to understand a market, find ICP pain points, map competitors, build a positioning doc, find messaging angles, or answer who is my customer and what do they actually care about. Trigger when a user says map my market, who is my ICP, what pains does my market have, understand my market, find my target customer, what are the top complaints in X space, help me position my product, or who should I be selling to.
|
|
12
4
|
compatibility: [claude-code, gemini-cli, github-copilot]
|
|
13
5
|
---
|
|
14
6
|
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# product-update-logger
|
|
2
|
+
|
|
3
|
+
Tell the skill what your product shipped. It writes a polished, living `docs/changelog.md` entry and hands you a ready-to-use content package: tweet thread, LinkedIn post, email snippet, and one-liner.
|
|
4
|
+
|
|
5
|
+
Run it after every deploy. Over quarters, `docs/changelog.md` becomes a complete, shareable product history.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npx "@opendirectory.dev/skills" install product-update-logger --target claude
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### Video Tutorial
|
|
14
|
+
Watch this quick video to see how it's done:
|
|
15
|
+
|
|
16
|
+
https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
|
|
17
|
+
|
|
18
|
+
### Step 1: Download the skill from GitHub
|
|
19
|
+
1. Click the **Code** button on this repo's GitHub page.
|
|
20
|
+
2. Select **Download ZIP** to download the repository.
|
|
21
|
+
3. Extract the ZIP file on your computer.
|
|
22
|
+
|
|
23
|
+
### Step 2: Install the Skill in Claude
|
|
24
|
+
1. Open your **Claude desktop app**.
|
|
25
|
+
2. Go to the sidebar on the left side and click on the **Customize** section.
|
|
26
|
+
3. Click on the **Skills** tab, then click on the **+** (plus) icon button to create a new skill.
|
|
27
|
+
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).
|
|
28
|
+
|
|
29
|
+
> **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!
|
|
30
|
+
|
|
31
|
+
## What It Does
|
|
32
|
+
|
|
33
|
+
- Accepts: free text items, git commits (auto-read), GitHub PRs -- any combination
|
|
34
|
+
- Filters noise: merge commits, version bumps, CI/CD, typos excluded automatically
|
|
35
|
+
- Transforms: technical commit language -> user-facing benefit language
|
|
36
|
+
- Categorizes: New / Improved / Fixed / Under the hood
|
|
37
|
+
- Generates a content package: one-liner, tweet thread, LinkedIn post, email snippet
|
|
38
|
+
- Appends a new dated entry to `docs/changelog.md` (living log, newest entry first)
|
|
39
|
+
- Saves the content package to `docs/product-updates/[date]-content.md`
|
|
40
|
+
|
|
41
|
+
## Requirements
|
|
42
|
+
|
|
43
|
+
| Requirement | Purpose | How to Set Up |
|
|
44
|
+
|---|---|---|
|
|
45
|
+
| GITHUB_TOKEN | Optional -- enables GitHub PR fetching for richer context | github.com/settings/tokens (no scopes needed) |
|
|
46
|
+
|
|
47
|
+
No other API keys required. Free text + git auto-read work with no configuration.
|
|
48
|
+
|
|
49
|
+
## Setup
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
cp .env.example .env
|
|
53
|
+
# Add GITHUB_TOKEN if you want to pull from GitHub PRs
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## How to Use
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
"We shipped dark mode and fixed the export bug this week."
|
|
60
|
+
"Log my product updates. I'm in a git repo."
|
|
61
|
+
"We launched 3 things: dark mode, faster search, fixed mobile login."
|
|
62
|
+
"Log updates from last 14 days. Repo: acme/dashboard"
|
|
63
|
+
"We shipped the onboarding redesign. Version: v2.1.0"
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Include competitor names for richer channel discovery. Include ICP role + pain for accurate signal-tracing.
|
|
67
|
+
|
|
68
|
+
## What Gets Generated
|
|
69
|
+
|
|
70
|
+
### docs/changelog.md (living log)
|
|
71
|
+
|
|
72
|
+
```markdown
|
|
73
|
+
# Changelog
|
|
74
|
+
|
|
75
|
+
## Week of April 23, 2026
|
|
76
|
+
|
|
77
|
+
### New
|
|
78
|
+
- **Dark mode** -- Toggle in Settings > Appearance. Works across all views.
|
|
79
|
+
|
|
80
|
+
### Improved
|
|
81
|
+
- **Search** -- Results now load in under half a second.
|
|
82
|
+
|
|
83
|
+
### Fixed
|
|
84
|
+
- **CSV export** -- Exports no longer drop the last row.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Week of April 14, 2026
|
|
89
|
+
...
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### docs/product-updates/[date]-content.md (content package)
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
## One-liner
|
|
96
|
+
Dark mode, faster search, and a fix for the export bug.
|
|
97
|
+
|
|
98
|
+
## Tweet Thread
|
|
99
|
+
[1/4] We shipped 3 things this week.
|
|
100
|
+
[2/4] Dark mode is live. Toggle it in Settings > Appearance.
|
|
101
|
+
...
|
|
102
|
+
|
|
103
|
+
## LinkedIn Post
|
|
104
|
+
We shipped 3 updates this week.
|
|
105
|
+
...
|
|
106
|
+
|
|
107
|
+
## Email Snippet
|
|
108
|
+
Subject: What shipped this week: dark mode + faster search
|
|
109
|
+
...
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Input Sources
|
|
113
|
+
|
|
114
|
+
The skill pulls from all three sources automatically:
|
|
115
|
+
|
|
116
|
+
| Source | When used | How to trigger |
|
|
117
|
+
|---|---|---|
|
|
118
|
+
| Free text | Always first | Just describe what shipped in your message |
|
|
119
|
+
| Git commits | Auto-read when in a git repo | Run the skill from your project directory |
|
|
120
|
+
| GitHub PRs | When GITHUB_TOKEN + repo provided | Mention "repo: owner/repo" in your message |
|
|
121
|
+
|
|
122
|
+
All three can be combined. Overlapping items are deduplicated.
|
|
123
|
+
|
|
124
|
+
## Changelog Entry Format
|
|
125
|
+
|
|
126
|
+
Each entry follows a consistent structure:
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
## [Version label]
|
|
130
|
+
|
|
131
|
+
### New
|
|
132
|
+
- **Feature** -- Benefit sentence.
|
|
133
|
+
|
|
134
|
+
### Improved
|
|
135
|
+
- **Feature** -- Benefit sentence.
|
|
136
|
+
|
|
137
|
+
### Fixed
|
|
138
|
+
- **Feature** -- What was broken, now fixed.
|
|
139
|
+
|
|
140
|
+
### Under the hood
|
|
141
|
+
- **Component** -- Developer-relevant change only.
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Version labels default to `Week of [Month Day, Year]`. Detected semver format is preserved and incremented automatically.
|
|
145
|
+
|
|
146
|
+
## Content Rules
|
|
147
|
+
|
|
148
|
+
- **Tweets**: Under 280 chars each, no hashtags, no em dashes, active voice
|
|
149
|
+
- **LinkedIn**: No markdown formatting, no hashtags, founder voice ("We shipped" not "We are excited to announce")
|
|
150
|
+
- **Email**: 50-100 word body, subject line formula, casual and direct
|
|
151
|
+
- **One-liner**: Max 20 words, covers top 1-2 items
|
|
152
|
+
|
|
153
|
+
## Standalone Script
|
|
154
|
+
|
|
155
|
+
Run data collection without Claude. Useful for raw item discovery before analysis.
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
# Git auto-read
|
|
159
|
+
python3 scripts/gather.py --since 7 --output /tmp/pul-raw.json
|
|
160
|
+
|
|
161
|
+
# Free text items
|
|
162
|
+
python3 scripts/gather.py --items "Add dark mode|Fix CSV bug" --output /tmp/pul-raw.json
|
|
163
|
+
|
|
164
|
+
# With GitHub PRs
|
|
165
|
+
GITHUB_TOKEN=your_token python3 scripts/gather.py --repo owner/repo --since 14
|
|
166
|
+
|
|
167
|
+
# Print to stdout
|
|
168
|
+
python3 scripts/gather.py --since 7 --stdout | jq '.items'
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
## Project Structure
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
product-update-logger/
|
|
175
|
+
├── SKILL.md
|
|
176
|
+
├── README.md
|
|
177
|
+
├── .env.example
|
|
178
|
+
├── scripts/
|
|
179
|
+
│ └── gather.py git + GitHub + free text collector
|
|
180
|
+
├── evals/
|
|
181
|
+
│ └── evals.json 5 test cases
|
|
182
|
+
└── references/
|
|
183
|
+
├── changelog-format.md entry structure, category rules, transformation examples
|
|
184
|
+
├── content-rules.md tweet/LinkedIn/email writing rules + banned words
|
|
185
|
+
└── noise-filter.md git commit patterns to skip
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Cost Per Run
|
|
189
|
+
|
|
190
|
+
- Git, free text: free, no auth
|
|
191
|
+
- GitHub PRs: free with optional token
|
|
192
|
+
- AI analysis: uses the model running the skill
|
|
193
|
+
- Total: free
|
|
194
|
+
|
|
195
|
+
## License
|
|
196
|
+
|
|
197
|
+
MIT
|