@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
|
@@ -11,7 +11,7 @@ npx "@opendirectory.dev/skills" install graphic-ebook --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.
|
|
@@ -22,102 +22,6 @@ https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
|
|
|
22
22
|
1. Open your **Claude desktop app**.
|
|
23
23
|
2. Go to the sidebar on the left side and click on the **Customize** section.
|
|
24
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 extract and drop the folder).
|
|
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
|
-
> **Note:**
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## What it does
|
|
32
|
-
|
|
33
|
-
- Asks 4 required questions to establish topic, audience, CTA, and content source
|
|
34
|
-
- Asks 9 optional intake questions to determine style, page count, and brand
|
|
35
|
-
- Plans the chapter structure and page sequence (with user confirmation)
|
|
36
|
-
- Drafts or uses provided content — per-page copy with word count discipline
|
|
37
|
-
- Generates a single self-contained HTML file — opens in any browser, no build tools
|
|
38
|
-
- Splits into per-page HTML files for individual sharing or editing
|
|
39
|
-
- Exports a print-ready PDF via Playwright (A4 portrait, 1200×1697px)
|
|
40
|
-
- Enforces visual rhythm — no 2+ consecutive text pages back-to-back
|
|
41
|
-
|
|
42
|
-
## Example
|
|
43
|
-
|
|
44
|
-
> "Create a 6-page ebook titled 'The B2B SaaS Guide to Reducing Churn'. Audience: Customer Success Managers at 50–500 person SaaS companies. CTA: book a demo. Style: clean-slate. Brand: DataPulse."
|
|
45
|
-
|
|
46
|
-
Output: cover + TOC + chapter opener + body page + stat page + closing CTA, exported as PDF.
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
## Supported Styles
|
|
51
|
-
|
|
52
|
-
| Style | Best for |
|
|
53
|
-
|---|---|
|
|
54
|
-
| clean-slate | Enterprise B2B, sales teams, any audience that expects professionalism |
|
|
55
|
-
| midnight-editorial | Tech/AI companies, premium B2B, thought leadership |
|
|
56
|
-
| matt-gray | Board materials, internal reviews, professional mixed audiences |
|
|
57
|
-
| product-minimal | Product companies, design-forward B2B, design-savvy buyers |
|
|
58
|
-
| mint-pixel-corporate | SaaS sales, tech startups, growth-stage B2B |
|
|
59
|
-
| warm-earth | Agencies, consultancies, service businesses, health/education tech |
|
|
60
|
-
| brutalist | Standout materials, design-forward agencies, bold brands |
|
|
61
|
-
| magazine-red | Marketing agencies, brand-forward companies, research reports |
|
|
62
|
-
| soft-cloud | Onboarding materials, customer education, approachable SaaS |
|
|
63
|
-
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
## Supported Page Layouts
|
|
67
|
-
|
|
68
|
-
| Layout | Purpose |
|
|
69
|
-
|---|---|
|
|
70
|
-
| cover | Opening page — title, subtitle, brand name, visual |
|
|
71
|
-
| toc | Table of contents — numbered chapter list |
|
|
72
|
-
| chapter-intro | Section opener — large chapter number, title, teaser |
|
|
73
|
-
| text-column | Reading body copy — 1-column or 2-column |
|
|
74
|
-
| text-sidebar | Body copy + typed callout sidebar (tip/warning/stat/quote/checklist) |
|
|
75
|
-
| quote-callout | Full-page pull quote with attribution |
|
|
76
|
-
| stat-grid | 3–6 key metrics with visual emphasis |
|
|
77
|
-
| key-takeaways | Summary list — what the reader retains |
|
|
78
|
-
| full-image | Full-page CSS-generated visual or abstract composition |
|
|
79
|
-
| closing-cta | Final page — CTA action + email + URL |
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
## Output
|
|
84
|
-
|
|
85
|
-
| File | What it is |
|
|
86
|
-
|---|---|
|
|
87
|
-
| `ebook/[slug]/index.html` | Full ebook, browser-ready |
|
|
88
|
-
| `ebook/[slug]/page-01.html` … | Per-page HTML files for individual sharing |
|
|
89
|
-
| `ebook/[slug].pdf` | Print-ready PDF (A4 portrait) |
|
|
90
|
-
|
|
91
|
-
Standard dimensions: 1200×1697px (A4 portrait).
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
|
|
95
|
-
## Parameters
|
|
96
|
-
|
|
97
|
-
| Param | Required | Notes |
|
|
98
|
-
|---|---|---|
|
|
99
|
-
| topic | Yes | The ebook subject (specific: "5 ways to reduce CAC") |
|
|
100
|
-
| audience | Yes | Target reader persona (role, company size, pain point) |
|
|
101
|
-
| desired_action | Yes | What reader should do after reading |
|
|
102
|
-
| content | Yes | Existing content to use, or "draft from scratch" |
|
|
103
|
-
| page_count | No | 3–10 (default: 6) |
|
|
104
|
-
| key_takeaways | No | 3–5 things the reader should learn |
|
|
105
|
-
| brand_name | No | Company/product name for cover and footer |
|
|
106
|
-
| brand_logo | No | Logo URL (CSS initials generated if omitted) |
|
|
107
|
-
| style | No | One of 9 named presets or "show me options" (default: clean-slate) |
|
|
108
|
-
| chapter_count | No | Number of main sections (derived from page_count if omitted) |
|
|
109
|
-
| cta_details | No | Primary CTA (default: "book a demo") |
|
|
110
|
-
| contact_info | No | Email + URL for closing page |
|
|
111
|
-
| slug | No | Filename slug (derived from topic if omitted) |
|
|
112
|
-
|
|
113
|
-
---
|
|
114
|
-
|
|
115
|
-
## Dependencies
|
|
116
|
-
|
|
117
|
-
**Node.js** — required for PDF export. Auto-detected; install from [nodejs.org](https://nodejs.org) if missing.
|
|
118
|
-
|
|
119
|
-
Everything else is bundled inside this skill:
|
|
120
|
-
- `assets/viewport-base.css` — responsive page foundation (included verbatim in generated HTML)
|
|
121
|
-
- `scripts/export-pdf.sh` — PDF export via Playwright (auto-installs Playwright + Chromium on first run)
|
|
122
|
-
|
|
123
|
-
No external skill dependencies. No API keys required.
|
|
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!
|
|
@@ -8,6 +8,24 @@ Generate animated looping GIFs from CSS animations. 800×800px default, 6 animat
|
|
|
8
8
|
npx "@opendirectory.dev/skills" install graphic-gif --target claude
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
+
### Video Tutorial
|
|
12
|
+
Watch this quick video to see how it's done:
|
|
13
|
+
|
|
14
|
+
https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
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
|
+
|
|
11
29
|
### Manual Install (2 steps)
|
|
12
30
|
|
|
13
31
|
1. Copy the URL of this skill folder from your browser, paste it at [download-directory.github.io](https://download-directory.github.io/), download the zip.
|
|
@@ -97,3 +115,4 @@ Everything else is bundled inside this skill or installed automatically on first
|
|
|
97
115
|
**For AI-generated GIFs (optional):**
|
|
98
116
|
- Kling API key in environment: `KLING_API_KEY`
|
|
99
117
|
- `ffmpeg` for video→GIF conversion: `brew install ffmpeg`
|
|
118
|
+
|
|
@@ -11,7 +11,7 @@ npx "@opendirectory.dev/skills" install graphic-slide-deck --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.
|
|
@@ -24,106 +24,4 @@ https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
|
|
|
24
24
|
3. Click on the **Skills** tab, then click on the **+** (plus) icon button to create a new skill.
|
|
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
|
-
> **Note:**
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## What it does
|
|
32
|
-
|
|
33
|
-
- Asks the questions that determine how a deck should be structured
|
|
34
|
-
- Plans the slide sequence with named layout types for each slide
|
|
35
|
-
- Generates a single self-contained HTML file -- opens in any browser, no build tools
|
|
36
|
-
- Splits into per-slide HTML files for individual sharing or editing
|
|
37
|
-
- Exports a PDF via Playwright (renders animations to final state)
|
|
38
|
-
- Optionally deploys to a live URL via Vercel for phone/tablet sharing
|
|
39
|
-
- Converts existing PowerPoint files to HTML
|
|
40
|
-
|
|
41
|
-
## Example
|
|
42
|
-
|
|
43
|
-
> "Create a 12-slide Series A investor deck for DataPulse. Audience: Series A VCs. Style: midnight-editorial."
|
|
44
|
-
|
|
45
|
-
Output: 12-slide HTML presentation, per-slide HTML files, and a PDF -- covering problem/solution/traction/team/market/ask.
|
|
46
|
-
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
## Supported Styles
|
|
50
|
-
|
|
51
|
-
| Style | Best for |
|
|
52
|
-
|---|---|
|
|
53
|
-
| midnight-editorial | Investor decks, premium B2B, thought leadership |
|
|
54
|
-
| matt-gray | Internal decks, operational reviews, mixed audiences |
|
|
55
|
-
| clean-slate | Sales decks, customer-facing, enterprise-safe |
|
|
56
|
-
| brutalist | Startup pitches, design-forward, tech conferences |
|
|
57
|
-
| mint-pixel-corporate | SaaS sales, product demos, growth-stage pitches |
|
|
58
|
-
| product-minimal | Product demos, feature showcases, design audiences |
|
|
59
|
-
| magazine-red | Marketing reports, campaign reviews, bold internal |
|
|
60
|
-
| soft-cloud | Onboarding, customer education, approachable SaaS |
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
## Supported Layouts
|
|
65
|
-
|
|
66
|
-
| Layout | Use case |
|
|
67
|
-
|---|---|
|
|
68
|
-
| title-hero | Opening slide -- large headline + subtext |
|
|
69
|
-
| section-divider | Section break -- bold label, minimal design |
|
|
70
|
-
| text-full | Headers + bullet points or paragraphs |
|
|
71
|
-
| text-left-image-right | Side-by-side: text column + visual |
|
|
72
|
-
| image-left-text-right | Side-by-side: image first, text second |
|
|
73
|
-
| two-column-text | Comparisons, pros/cons, before/after |
|
|
74
|
-
| image-full | Full-bleed image with optional caption overlay |
|
|
75
|
-
| image-grid | 2x2 or 3x2 grid of images or screenshots |
|
|
76
|
-
| stat-highlight | 2-4 large KPI metrics (the unmissable slide) |
|
|
77
|
-
| quote-callout | Pull quote with attribution |
|
|
78
|
-
| comparison-table | Feature or option comparison grid |
|
|
79
|
-
| timeline | Horizontal or vertical milestones |
|
|
80
|
-
| closing-cta | Final slide -- CTA, contact info, next steps |
|
|
81
|
-
|
|
82
|
-
---
|
|
83
|
-
|
|
84
|
-
## Output
|
|
85
|
-
|
|
86
|
-
| File | What it is |
|
|
87
|
-
|---|---|
|
|
88
|
-
| `deck/[name]-slides/index.html` | Full presentation, browser-ready |
|
|
89
|
-
| `deck/[name]-slides/slide-001.html` ... | Per-slide HTML files for individual sharing |
|
|
90
|
-
| `deck/[name].pdf` | PDF export (if requested) |
|
|
91
|
-
| Live URL | Deployed Vercel URL (if requested) |
|
|
92
|
-
|
|
93
|
-
Slides are 1920x1080px (16:9) by default. 1:1 (1080x1080) available for LinkedIn.
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## Parameters
|
|
98
|
-
|
|
99
|
-
| Param | Required | Notes |
|
|
100
|
-
|---|---|---|
|
|
101
|
-
| purpose | Yes | investor pitch / sales call / conference talk / internal / onboarding |
|
|
102
|
-
| audience | Yes | VCs, prospects, your team, executives, conference room |
|
|
103
|
-
| topic_or_content | Yes | Freeform brief, notes, URL, or uploaded file |
|
|
104
|
-
| key_message | No | Single sentence the audience must remember |
|
|
105
|
-
| slide_count | No | Default: 12 |
|
|
106
|
-
| style | No | One of 8 named presets or "show me options" (default: clean-slate) |
|
|
107
|
-
| aspect_ratio | No | 16:9 or 1:1 (default: 16:9) |
|
|
108
|
-
| inline_editing | No | Yes/No -- editable in-browser (default: No) |
|
|
109
|
-
| output_format | No | HTML only / HTML+PDF / HTML+PDF+deploy (default: HTML+PDF) |
|
|
110
|
-
| deck_name | No | Slug for file/folder naming (derived from topic if omitted) |
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
## Dependencies
|
|
115
|
-
|
|
116
|
-
This skill requires the `frontend-slides` skill files at:
|
|
117
|
-
`/Users/ksd/Desktop/Varnan_skills/frontend-slides/`
|
|
118
|
-
|
|
119
|
-
Specifically:
|
|
120
|
-
- `viewport-base.css` -- responsive slide foundation (included verbatim in generated HTML)
|
|
121
|
-
- `html-template.md` -- SlidePresentation class and inline editing system
|
|
122
|
-
- `animation-patterns.md` -- entrance animations and background effects
|
|
123
|
-
- `scripts/export-pdf.sh` -- PDF export via Playwright (Node.js required, auto-installs)
|
|
124
|
-
- `scripts/deploy.sh` -- Vercel deployment (Node.js required)
|
|
125
|
-
- `scripts/extract-pptx.py` -- PowerPoint content extraction (Python + `python-pptx` required)
|
|
126
|
-
|
|
127
|
-
## No API keys required
|
|
128
|
-
|
|
129
|
-
Pure AI skill. No external services, no scraping, no dependencies to install beyond the above.
|
|
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!
|
|
@@ -14,7 +14,7 @@ npx "@opendirectory.dev/skills" install hackernews-intel --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,158 +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 new posts from HN using the free Algolia search API (no API key needed)
|
|
35
|
-
- Checks each match against a local SQLite cache and never alerts on the same post twice
|
|
36
|
-
- Sends a Slack notification with title, URL, points, and comment count
|
|
37
|
-
- Supports dry-run mode to preview matches without sending alerts
|
|
38
|
-
- Configurable lookback window, minimum points threshold, and comment inclusion
|
|
39
|
-
|
|
40
|
-
## Requirements
|
|
41
|
-
|
|
42
|
-
| Requirement | Purpose | Where to Get It |
|
|
43
|
-
|------------|---------|-----------------|
|
|
44
|
-
| HN_KEYWORDS | Keywords to monitor | Set in .env, comma-separated list |
|
|
45
|
-
| SLACK_WEBHOOK | Slack alerts | https://api.slack.com/apps, Incoming Webhooks |
|
|
46
|
-
| Node.js 20+ | Running the script | https://nodejs.org |
|
|
47
|
-
|
|
48
|
-
No API key needed for Hacker News. The HN Algolia API is free and public.
|
|
49
|
-
|
|
50
|
-
## Setup
|
|
51
|
-
|
|
52
|
-
### 1. Install dependencies
|
|
53
|
-
|
|
54
|
-
```bash
|
|
55
|
-
cd hackernews-intel
|
|
56
|
-
npm install
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
### 2. Configure environment variables
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
cp .env.example .env
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
Edit `.env`:
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
HN_KEYWORDS=claude code,LLM agents,deno runtime
|
|
69
|
-
SLACK_WEBHOOK=https://hooks.slack.com/services/your/webhook/url
|
|
70
|
-
HN_MIN_POINTS=0
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
### 3. Create a Slack webhook
|
|
74
|
-
|
|
75
|
-
1. Go to https://api.slack.com/apps and create or select your app
|
|
76
|
-
2. Enable "Incoming Webhooks" in the app settings
|
|
77
|
-
3. Add a webhook to your workspace and select the target channel
|
|
78
|
-
4. Copy the webhook URL (starts with `https://hooks.slack.com/services/`)
|
|
79
|
-
5. Set it as `SLACK_WEBHOOK` in `.env`
|
|
80
|
-
|
|
81
|
-
## How to Use
|
|
82
|
-
|
|
83
|
-
Preview the last 7 days without sending alerts:
|
|
84
|
-
|
|
85
|
-
```bash
|
|
86
|
-
npm run dry-run:week
|
|
87
|
-
# or
|
|
88
|
-
node scripts/monitor-hn.js --dry-run --days=7
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
Live run:
|
|
92
|
-
|
|
93
|
-
```bash
|
|
94
|
-
npm run monitor
|
|
95
|
-
# or
|
|
96
|
-
node scripts/monitor-hn.js
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
Schedule via cron (every 4 hours):
|
|
100
|
-
|
|
101
|
-
```bash
|
|
102
|
-
crontab -e
|
|
103
|
-
# Add:
|
|
104
|
-
0 */4 * * * cd /path/to/hackernews-intel && node scripts/monitor-hn.js >> /tmp/hn-intel.log 2>&1
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
Schedule via GitHub Actions:
|
|
108
|
-
|
|
109
|
-
```yaml
|
|
110
|
-
name: HN Intel Monitor
|
|
111
|
-
on:
|
|
112
|
-
schedule:
|
|
113
|
-
- cron: '0 */4 * * *'
|
|
114
|
-
workflow_dispatch:
|
|
115
|
-
jobs:
|
|
116
|
-
monitor:
|
|
117
|
-
runs-on: ubuntu-latest
|
|
118
|
-
steps:
|
|
119
|
-
- uses: actions/checkout@v4
|
|
120
|
-
- uses: actions/setup-node@v4
|
|
121
|
-
with:
|
|
122
|
-
node-version: '20'
|
|
123
|
-
- run: npm install
|
|
124
|
-
- run: node scripts/monitor-hn.js
|
|
125
|
-
env:
|
|
126
|
-
HN_KEYWORDS: ${{ secrets.HN_KEYWORDS }}
|
|
127
|
-
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
Add `HN_KEYWORDS` and `SLACK_WEBHOOK` as repository secrets.
|
|
131
|
-
|
|
132
|
-
## Slack Alert Format
|
|
133
|
-
|
|
134
|
-
Each alert looks like:
|
|
135
|
-
|
|
136
|
-
```
|
|
137
|
-
Story Title Here
|
|
138
|
-
47 points 23 comments authorname
|
|
139
|
-
Keyword: claude code | HN discussion
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
## Options
|
|
143
|
-
|
|
144
|
-
| Variable | Default | Purpose |
|
|
145
|
-
|----------|---------|---------|
|
|
146
|
-
| `HN_KEYWORDS` | required | Comma-separated keywords |
|
|
147
|
-
| `SLACK_WEBHOOK` | required | Slack Incoming Webhook URL |
|
|
148
|
-
| `HN_MIN_POINTS` | `0` | Minimum points to alert |
|
|
149
|
-
| `HN_INCLUDE_COMMENTS` | `false` | Also monitor HN comments |
|
|
150
|
-
| `HN_DB_PATH` | `./hn-intel.db` | SQLite cache file path |
|
|
151
|
-
|
|
152
|
-
## CLI Flags
|
|
153
|
-
|
|
154
|
-
| Flag | Purpose |
|
|
155
|
-
|------|---------|
|
|
156
|
-
| `--dry-run` | Preview matches without sending Slack alerts |
|
|
157
|
-
| `--days=N` | Lookback window for the first run (default: 1) |
|
|
158
|
-
| `--reset` | Clear the cache and start fresh |
|
|
159
|
-
|
|
160
|
-
## GitHub Actions Note
|
|
161
|
-
|
|
162
|
-
GitHub Actions does not persist files between workflow runs. The SQLite cache resets on each run, and the script re-fetches the last 1 day of posts every time. Posts from the previous run will be alerted again.
|
|
163
|
-
|
|
164
|
-
To fix this, either:
|
|
165
|
-
- Store `hn-intel.db` in an S3 bucket and download/upload it around the script run
|
|
166
|
-
- Use a self-hosted runner with persistent storage
|
|
167
|
-
- Use a cron job on your own machine instead
|
|
168
|
-
|
|
169
|
-
## Project Structure
|
|
170
|
-
|
|
171
|
-
```
|
|
172
|
-
hackernews-intel/
|
|
173
|
-
├── SKILL.md
|
|
174
|
-
├── README.md
|
|
175
|
-
├── .env.example
|
|
176
|
-
├── package.json
|
|
177
|
-
├── evals/
|
|
178
|
-
│ └── evals.json
|
|
179
|
-
└── scripts/
|
|
180
|
-
└── monitor-hn.js
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
## License
|
|
184
|
-
|
|
185
|
-
MIT
|
|
@@ -16,7 +16,7 @@ npx "@opendirectory.dev/skills" install human-tone --target claude
|
|
|
16
16
|
### Video Tutorial
|
|
17
17
|
Watch this quick video to see how it's done:
|
|
18
18
|
|
|
19
|
-
https://github.com/user-attachments/assets/
|
|
19
|
+
https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
20
20
|
|
|
21
21
|
### Step 1: Download the skill from GitHub
|
|
22
22
|
1. Copy the URL of this specific skill folder from your browser's address bar.
|
|
@@ -30,45 +30,3 @@ https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
|
|
|
30
30
|
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).
|
|
31
31
|
|
|
32
32
|
> **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!
|
|
33
|
-
|
|
34
|
-
## What It Fixes
|
|
35
|
-
|
|
36
|
-
* Removes words like "streamline", "empower", and "revolutionize".
|
|
37
|
-
* Stops the AI from starting emails with "I hope this finds you well".
|
|
38
|
-
* Forces the AI to replace vague claims with specific numbers and outcomes.
|
|
39
|
-
* Fixes the rigid sentence structures that make AI text obvious.
|
|
40
|
-
|
|
41
|
-
## Installation
|
|
42
|
-
|
|
43
|
-
You can install this skill directly into your AI agent environment using the OpenDirectory command line tool.
|
|
44
|
-
|
|
45
|
-
### Option 1: Quick Install
|
|
46
|
-
|
|
47
|
-
Run this command in your terminal to install it directly without downloading the whole directory:
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
npx "@opendirectory.dev/skills" install human-tone --target opencode
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
Note: You can change `--target opencode` to `--target claude` or `--target cursor` depending on which AI assistant you use.
|
|
54
|
-
|
|
55
|
-
### Option 2: Global Install
|
|
56
|
-
|
|
57
|
-
If you plan to browse and install multiple skills, you can install the tool globally on your computer:
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
npm install -g @opendirectory.dev/skills
|
|
61
|
-
opendirectory install human-tone --target opencode
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
## How to Use It
|
|
65
|
-
|
|
66
|
-
Once the skill is installed in your workspace, simply ask your AI to humanize your copy.
|
|
67
|
-
|
|
68
|
-
**Basic usage:**
|
|
69
|
-
> "Take this draft for a cold email and run it through the human-tone skill. Make it short and direct."
|
|
70
|
-
|
|
71
|
-
**Advanced usage (Matching a specific voice):**
|
|
72
|
-
> "Rewrite this landing page copy using the human-tone skill. Match the writing style in this sample: [paste a sample of your writing]."
|
|
73
|
-
|
|
74
|
-
The AI will rewrite the text, provide a bulleted list of what it changed, and flag any placeholders where you need to insert real numbers or actual customer names.
|
|
@@ -14,7 +14,7 @@ npx "@opendirectory.dev/skills" install kill-the-standup --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,81 +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 yesterday's Linear issues assigned to you (completed and in-progress)
|
|
35
|
-
- Fetches yesterday's GitHub commits from your configured repo
|
|
36
|
-
- Formats a three-section standup: Done, Doing, Blockers
|
|
37
|
-
- Posts to your Slack channel via Incoming Webhook
|
|
38
|
-
|
|
39
|
-
## Requirements
|
|
40
|
-
|
|
41
|
-
| Requirement | Purpose | How to Set Up |
|
|
42
|
-
|------------|---------|--------------|
|
|
43
|
-
| Linear API key | Fetching your issues | Linear, Settings, API, Personal API keys |
|
|
44
|
-
| Slack Incoming Webhook | Posting the standup | api.slack.com/apps, Your App, Incoming Webhooks |
|
|
45
|
-
| `gh` CLI (optional) | Fetching GitHub commits | https://cli.github.com, then run `gh auth login` |
|
|
46
|
-
|
|
47
|
-
No LLM API key needed. The agent reads your activity directly.
|
|
48
|
-
|
|
49
|
-
## Setup
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
cp .env.example .env
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Edit `.env` and fill in:
|
|
56
|
-
- `LINEAR_API_KEY` (required)
|
|
57
|
-
- `SLACK_WEBHOOK_URL` (required)
|
|
58
|
-
- `GITHUB_REPO` (optional, format: `owner/repo`)
|
|
59
|
-
- `GITHUB_USERNAME` (optional, defaults to your gh auth username)
|
|
60
|
-
|
|
61
|
-
## How to Use
|
|
62
|
-
|
|
63
|
-
Write and post standup:
|
|
64
|
-
|
|
65
|
-
```
|
|
66
|
-
"Write my standup"
|
|
67
|
-
"Post my standup to Slack"
|
|
68
|
-
"Generate standup update"
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
Output only, no Slack post:
|
|
72
|
-
|
|
73
|
-
```
|
|
74
|
-
"Write my standup but don't post it"
|
|
75
|
-
"What did I do yesterday?"
|
|
76
|
-
"Give me my standup text"
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
## Output Format
|
|
80
|
-
|
|
81
|
-
```
|
|
82
|
-
Done
|
|
83
|
-
- [ENG-123] Fix session timeout bug
|
|
84
|
-
- fix: remove duplicate middleware registration
|
|
85
|
-
|
|
86
|
-
Doing
|
|
87
|
-
- [ENG-124] Migrate auth to OAuth2
|
|
88
|
-
|
|
89
|
-
Blockers
|
|
90
|
-
No blockers.
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
## Project Structure
|
|
94
|
-
|
|
95
|
-
```
|
|
96
|
-
kill-the-standup/
|
|
97
|
-
├── SKILL.md
|
|
98
|
-
├── README.md
|
|
99
|
-
├── .env.example
|
|
100
|
-
├── evals/
|
|
101
|
-
│ └── evals.json
|
|
102
|
-
└── references/
|
|
103
|
-
└── standup-format.md
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
## License
|
|
107
|
-
|
|
108
|
-
MIT
|
|
@@ -123,12 +123,12 @@ linkedin-job-post-to-buyer-pain-map/
|
|
|
123
123
|
|
|
124
124
|
MIT
|
|
125
125
|
|
|
126
|
-
##
|
|
126
|
+
## Install
|
|
127
127
|
|
|
128
128
|
### Video Tutorial
|
|
129
129
|
Watch this quick video to see how it's done:
|
|
130
130
|
|
|
131
|
-
https://github.com/user-attachments/assets/
|
|
131
|
+
https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
132
132
|
|
|
133
133
|
### Step 1: Download the skill from GitHub
|
|
134
134
|
1. Copy the URL of this specific skill folder from your browser's address bar.
|
|
@@ -141,4 +141,4 @@ https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
|
|
|
141
141
|
3. Click on the **Skills** tab, then click on the **+** (plus) icon button to create a new skill.
|
|
142
142
|
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).
|
|
143
143
|
|
|
144
|
-
> **Note:** Always make sure you are uploading the specific folder that contains the `SKILL.md` file!
|
|
144
|
+
> **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!
|