@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opendirectory.dev/skills",
3
- "version": "0.1.38",
3
+ "version": "0.1.40",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "bin": {
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,4 @@
1
+ GITHUB_TOKEN= # optional -- github.com/settings/tokens (no scopes needed for public repos)
2
+ # Without it: free text + git commits work fully
3
+ # With it: GitHub PR fetching enabled (richer context from PR bodies)
4
+ # Core changelog generation works without any token
@@ -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