@opendirectory.dev/skills 0.1.65 → 0.1.67
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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# product-update-logger
|
|
1
|
+
# product-update-logger
|
|
2
2
|
|
|
3
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
4
|
|
|
@@ -16,9 +16,9 @@ Watch this quick video to see how it's done:
|
|
|
16
16
|
https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
17
17
|
|
|
18
18
|
### Step 1: Download the skill from GitHub
|
|
19
|
-
1.
|
|
20
|
-
2.
|
|
21
|
-
3.
|
|
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
22
|
|
|
23
23
|
### Step 2: Install the Skill in Claude
|
|
24
24
|
1. Open your **Claude desktop app**.
|
|
@@ -27,3 +27,171 @@ https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
|
27
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
28
|
|
|
29
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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# producthunt-launch-kit
|
|
1
|
+
# producthunt-launch-kit
|
|
2
2
|
|
|
3
3
|
<img width="1280" height="640" alt="producthunt-launch-kit" src="https://github.com/user-attachments/assets/dc16bde9-9bc4-4022-94a8-a4db024cbd95" />
|
|
4
4
|
|
|
@@ -28,3 +28,92 @@ 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
|
+
- Generates 5 tagline variants with character counts (all under 60 chars)
|
|
35
|
+
- Writes a listing description under 500 characters
|
|
36
|
+
- Drafts a maker comment (300-400 words) that opens with the builder story, not "Hi PH!"
|
|
37
|
+
- Creates a launch day tweet thread (5-7 tweets, no hashtags)
|
|
38
|
+
- Writes a LinkedIn post for launch day
|
|
39
|
+
- Generates a 4-email sequence: existing users, newsletter, day-of reminder, follow-up
|
|
40
|
+
- Includes a launch checklist with timing and community guidelines
|
|
41
|
+
|
|
42
|
+
## Requirements
|
|
43
|
+
|
|
44
|
+
| Requirement | Purpose | How to Set Up |
|
|
45
|
+
|------------|---------|--------------|
|
|
46
|
+
| Gemini API key | All copy generation | aistudio.google.com, Get API key |
|
|
47
|
+
|
|
48
|
+
## Setup
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
cp .env.example .env
|
|
52
|
+
# Add GEMINI_API_KEY
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## How to Use
|
|
56
|
+
|
|
57
|
+
Full launch kit:
|
|
58
|
+
```
|
|
59
|
+
"Generate a Product Hunt launch kit for my product"
|
|
60
|
+
"Prepare my PH listing and launch copy"
|
|
61
|
+
"Help me launch on Product Hunt"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Specific assets:
|
|
65
|
+
```
|
|
66
|
+
"Write my Product Hunt tagline for [product description]"
|
|
67
|
+
"Draft a maker comment for my PH launch"
|
|
68
|
+
"Write PH launch tweets"
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
From README:
|
|
72
|
+
```
|
|
73
|
+
"Generate a Product Hunt kit: my README is in this repo"
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Copy Constraints
|
|
77
|
+
|
|
78
|
+
| Asset | Limit | Notes |
|
|
79
|
+
|-------|-------|-------|
|
|
80
|
+
| Tagline | 60 chars | Hard limit, enforced by PH form |
|
|
81
|
+
| Description | 500 chars | Appears in search and email digests |
|
|
82
|
+
| Maker comment | 300-400 words | Post within 60 seconds of launch |
|
|
83
|
+
| Tweets | 280 chars each | No hashtags on technical threads |
|
|
84
|
+
|
|
85
|
+
## Maker Comment Strategy
|
|
86
|
+
|
|
87
|
+
The maker comment drives more PH success than any other single action. It should:
|
|
88
|
+
|
|
89
|
+
- Open with the real builder story (not "Hi PH! We're excited to announce...")
|
|
90
|
+
- Include at least one technical detail about how it works
|
|
91
|
+
- Acknowledge what the product does NOT do
|
|
92
|
+
- End with a specific question that invites comments
|
|
93
|
+
|
|
94
|
+
The comment goes live as your first reply to your own listing, within 60 seconds of the product going live at 12:01 AM PST.
|
|
95
|
+
|
|
96
|
+
## Launch Timing
|
|
97
|
+
|
|
98
|
+
Best days: Tuesday, Wednesday, Thursday
|
|
99
|
+
|
|
100
|
+
Avoid: Friday afternoons, holiday weeks, major tech conference days
|
|
101
|
+
|
|
102
|
+
The first 4 hours determine front page placement. Notify your audience before midnight PST on launch day so they are ready.
|
|
103
|
+
|
|
104
|
+
## Project Structure
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
producthunt-launch-kit/
|
|
108
|
+
├── SKILL.md
|
|
109
|
+
├── README.md
|
|
110
|
+
├── .env.example
|
|
111
|
+
├── evals/
|
|
112
|
+
│ └── evals.json
|
|
113
|
+
└── references/
|
|
114
|
+
└── copy-rules.md
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## License
|
|
118
|
+
|
|
119
|
+
MIT
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# reddit-icp-monitor
|
|
1
|
+
# reddit-icp-monitor
|
|
2
2
|
|
|
3
3
|
<img width="1280" height="640" alt="reddit-icp-monitor" src="https://github.com/user-attachments/assets/8182b73f-1f8d-4812-9061-165fd8aeb0e8" />
|
|
4
4
|
|
|
@@ -28,3 +28,114 @@ 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 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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# reddit-post-engine
|
|
1
|
+
# reddit-post-engine
|
|
2
2
|
|
|
3
3
|
<img width="1280" height="640" alt="reddit-post-engine" src="https://github.com/user-attachments/assets/2706f326-5fb9-46fc-851a-ec54ccf53f74" />
|
|
4
4
|
|
|
@@ -28,3 +28,100 @@ 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
|
+
- 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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# schema-markup-generator
|
|
1
|
+
# schema-markup-generator
|
|
2
2
|
|
|
3
3
|

|
|
4
4
|
|
|
@@ -28,3 +28,111 @@ 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
|
+
## 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
|