@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
|
-
# graphic-slide-deck
|
|
1
|
+
# graphic-slide-deck
|
|
2
2
|
|
|
3
3
|
Generate a professionally designed HTML slide deck from a brief, content notes, or an existing PowerPoint. Outputs a browser-ready presentation + optional PDF. Supports 13 named layout types and 8 business style presets.
|
|
4
4
|
|
|
@@ -24,4 +24,106 @@ https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
|
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:**
|
|
27
|
+
> **Note:** Make sure you upload the folder that contains the `SKILL.md` file directly.
|
|
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.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# hackernews-intel
|
|
1
|
+
# hackernews-intel
|
|
2
2
|
|
|
3
3
|
<img width="1280" height="640" alt="hackernews-intel" src="https://github.com/user-attachments/assets/8d75cba9-7c2b-4693-8365-00779ed2b3d3" />
|
|
4
4
|
|
|
@@ -28,3 +28,158 @@ 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 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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<img width="1280" height="640" alt="human-tone-skill-cover-image" src="https://github.com/user-attachments/assets/aa2c99dc-87a6-490e-a989-21fd6a2bbc9a" />
|
|
1
|
+
<img width="1280" height="640" alt="human-tone-skill-cover-image" src="https://github.com/user-attachments/assets/aa2c99dc-87a6-490e-a989-21fd6a2bbc9a" />
|
|
2
2
|
|
|
3
3
|
# Human Tone
|
|
4
4
|
|
|
@@ -30,3 +30,45 @@ https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
|
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.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# kill-the-standup
|
|
1
|
+
# kill-the-standup
|
|
2
2
|
|
|
3
3
|
<img width="1280" height="640" alt="kill-the-standup" src="https://github.com/user-attachments/assets/4fcf306d-7ef9-455a-b5f1-02532c292f65" />
|
|
4
4
|
|
|
@@ -28,3 +28,81 @@ 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 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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# linkedin-job-post-to-buyer-pain-map
|
|
1
|
+
# linkedin-job-post-to-buyer-pain-map
|
|
2
2
|
|
|
3
3
|
<img src="cover.png" width="100%" alt="LinkedIn Job Post to Buyer Pain Map — Signal Decoder for GTM Teams" />
|
|
4
4
|
|
|
@@ -123,7 +123,7 @@ linkedin-job-post-to-buyer-pain-map/
|
|
|
123
123
|
|
|
124
124
|
MIT
|
|
125
125
|
|
|
126
|
-
##
|
|
126
|
+
## Installation in Claude Desktop App
|
|
127
127
|
|
|
128
128
|
### Video Tutorial
|
|
129
129
|
Watch this quick video to see how it's done:
|
|
@@ -141,4 +141,4 @@ https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
|
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:**
|
|
144
|
+
> **Note:** Always make sure you are uploading the specific folder that contains the `SKILL.md` file!
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# linkedin-post-generator
|
|
1
|
+
# linkedin-post-generator
|
|
2
2
|
|
|
3
3
|
<img width="1376" height="768" alt="LinkedIn_post_generator" src="https://github.com/user-attachments/assets/dc71e06b-8b3c-486a-adbf-d56a7b22cdc1" />
|
|
4
4
|
|
|
@@ -27,3 +27,105 @@ 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
|
+
## Post Styles
|
|
32
|
+
|
|
33
|
+
| Style | Use When | Example Input |
|
|
34
|
+
|-------|----------|---------------|
|
|
35
|
+
| Founder/Ship | Personal story of building or shipping | "We merged our streaming SDK after 3 weeks" |
|
|
36
|
+
| Insight | Educational observation or lesson | Blog article, pattern you noticed, lesson learned |
|
|
37
|
+
| Product Launch | Announcing a new tool or feature | PR description, launch brief, feature going GA |
|
|
38
|
+
| Tutorial Summary | Distilling a long technical post | Tutorial URL, deep-dive article, step-by-step guide |
|
|
39
|
+
|
|
40
|
+
The agent auto-detects the right style. You override it by asking for a specific one.
|
|
41
|
+
|
|
42
|
+
## Requirements
|
|
43
|
+
|
|
44
|
+
No LLM API key needed. The agent writes the post.
|
|
45
|
+
|
|
46
|
+
Composio is optional. Add it to post directly to LinkedIn.
|
|
47
|
+
|
|
48
|
+
## Setup
|
|
49
|
+
|
|
50
|
+
### Composio (Optional)
|
|
51
|
+
|
|
52
|
+
Without Composio, the agent outputs formatted text for copy-paste. No configuration needed.
|
|
53
|
+
|
|
54
|
+
To enable direct posting:
|
|
55
|
+
1. Get your API key at https://app.composio.dev/settings
|
|
56
|
+
2. Connect your LinkedIn account at https://app.composio.dev/app/linkedin
|
|
57
|
+
3. Complete the OAuth flow
|
|
58
|
+
4. Add the key to your .env file:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
cp .env.example .env
|
|
62
|
+
# Edit .env and add your COMPOSIO_API_KEY
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## How to Use
|
|
66
|
+
|
|
67
|
+
From a URL:
|
|
68
|
+
```
|
|
69
|
+
"Turn this into a LinkedIn post: https://yourblog.com/my-post"
|
|
70
|
+
"Write a LinkedIn post about this article: [URL]"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
From pasted text:
|
|
74
|
+
```
|
|
75
|
+
"Here's a case study, turn it into a LinkedIn post: [paste text]"
|
|
76
|
+
"Convert this to a LinkedIn post: [paste article]"
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
From a PR or shipped feature:
|
|
80
|
+
```
|
|
81
|
+
"Write a LinkedIn post about this PR we merged: [paste PR description]"
|
|
82
|
+
"Announce our new feature on LinkedIn: [describe the feature]"
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
With a style override:
|
|
86
|
+
```
|
|
87
|
+
"Write a LinkedIn post in Tutorial Summary style about: [topic]"
|
|
88
|
+
"Use the Product Launch style for this: [description]"
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
With direct posting:
|
|
92
|
+
```
|
|
93
|
+
"Post this to LinkedIn: [paste content]"
|
|
94
|
+
"Generate and post a LinkedIn update about [topic]"
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Output
|
|
98
|
+
|
|
99
|
+
| Output | Description |
|
|
100
|
+
|--------|-------------|
|
|
101
|
+
| LinkedIn post | Formatted text, 900-1,300 characters, ready to publish |
|
|
102
|
+
| First comment | Text with source links. Post this immediately after publishing. |
|
|
103
|
+
| Hook alternatives | 2 additional hook lines in different formats |
|
|
104
|
+
| Posted confirmation | If Composio is configured and you confirm posting |
|
|
105
|
+
|
|
106
|
+
## How Posts Are Formatted
|
|
107
|
+
|
|
108
|
+
Four rules drive every post the agent writes:
|
|
109
|
+
|
|
110
|
+
- Hook first. The first line is all most people see. It works standalone.
|
|
111
|
+
- Short paragraphs. 1-3 lines, then a blank line. LinkedIn is mobile-first.
|
|
112
|
+
- Links in the first comment. URLs in the post body reduce LinkedIn's distribution.
|
|
113
|
+
- Question or CTA at the end. One or the other, not both.
|
|
114
|
+
|
|
115
|
+
## Project Structure
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
linkedin-post-generator/
|
|
119
|
+
├── SKILL.md
|
|
120
|
+
├── README.md
|
|
121
|
+
├── .env.example
|
|
122
|
+
├── evals/
|
|
123
|
+
│ └── evals.json
|
|
124
|
+
└── references/
|
|
125
|
+
├── linkedin-format.md
|
|
126
|
+
└── output-template.md
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## License
|
|
130
|
+
|
|
131
|
+
MIT
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# llms-txt-generator
|
|
1
|
+
# llms-txt-generator
|
|
2
2
|
|
|
3
3
|
<img width="1376" height="768" alt="llms-txt-generator" src="https://github.com/user-attachments/assets/7f549d0b-4d55-40a8-97c6-59510cc40b54" />
|
|
4
4
|
|
|
@@ -27,3 +27,140 @@ 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
|
+
The skill crawls your website using Chrome DevTools, reads your actual pages, and produces a clean `llms.txt` file in the format specified by [Jeremy Howard's llms.txt standard](https://llmstxt.org). When AI agents (Claude, ChatGPT, Gemini) visit your site, they read `llms.txt` first to understand what you are and where to find authoritative content.
|
|
34
|
+
|
|
35
|
+
**Without llms.txt:** AI agents guess, hallucinate, or cite competitors instead.
|
|
36
|
+
**With llms.txt:** AI agents cite your product correctly and know exactly where your docs, blog, and key pages live.
|
|
37
|
+
|
|
38
|
+
## Two Modes
|
|
39
|
+
|
|
40
|
+
### Codebase Mode (no Chrome needed)
|
|
41
|
+
If you're inside a website's repo, the skill reads your source files directly pages, routes, blog posts, frontmatter, site config. It writes `llms.txt` straight to `public/` when you approve. No browser required.
|
|
42
|
+
|
|
43
|
+
Supported frameworks: **Next.js** (pages + app router), **Astro**, **Nuxt**, **Gatsby**, **SvelteKit**, **Hugo**, **Jekyll**
|
|
44
|
+
|
|
45
|
+
### Live Site Mode (Chrome or fetch fallback)
|
|
46
|
+
If you only have the URL, the skill crawls the live site using Chrome DevTools MCP. Falls back to standard web fetch if Chrome isn't available.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Requirements
|
|
51
|
+
|
|
52
|
+
**Codebase Mode:** No extra setup. Just be inside the repo directory.
|
|
53
|
+
|
|
54
|
+
**Live Site Mode:**
|
|
55
|
+
- Chrome with remote debugging enabled (or any live URL skill will fall back to web fetch)
|
|
56
|
+
- Chrome DevTools MCP server configured in your agent (optional, improves JS-rendered sites)
|
|
57
|
+
|
|
58
|
+
## Setup
|
|
59
|
+
|
|
60
|
+
### For Live Site Mode: Start Chrome with Remote Debugging
|
|
61
|
+
|
|
62
|
+
**Mac:**
|
|
63
|
+
```bash
|
|
64
|
+
open -a "Google Chrome" --args --remote-debugging-port=9222
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Linux:**
|
|
68
|
+
```bash
|
|
69
|
+
google-chrome --remote-debugging-port=9222
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**Windows:**
|
|
73
|
+
```bash
|
|
74
|
+
chrome.exe --remote-debugging-port=9222
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### 2. Install Chrome DevTools MCP Server
|
|
78
|
+
|
|
79
|
+
Follow the setup at: https://github.com/ChromeDevTools/chrome-devtools-mcp
|
|
80
|
+
|
|
81
|
+
Add to your agent's MCP configuration:
|
|
82
|
+
```json
|
|
83
|
+
{
|
|
84
|
+
"mcpServers": {
|
|
85
|
+
"chrome-devtools": {
|
|
86
|
+
"command": "npx",
|
|
87
|
+
"args": ["-y", "@chrome-devtools/mcp-server"],
|
|
88
|
+
"env": {
|
|
89
|
+
"CHROME_DEBUGGING_PORT": "9222"
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 3. Configure Environment (Optional)
|
|
97
|
+
|
|
98
|
+
Copy `.env.example` to `.env` and fill in:
|
|
99
|
+
```bash
|
|
100
|
+
cp .env.example .env
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
`GITHUB_TOKEN` and `GITHUB_REPO` are only needed if you want the agent to automatically open a GitHub PR with the generated file.
|
|
104
|
+
|
|
105
|
+
## How to Use
|
|
106
|
+
|
|
107
|
+
**Codebase Mode** just be inside your project and ask:
|
|
108
|
+
```
|
|
109
|
+
"Generate an llms.txt for this site"
|
|
110
|
+
"Add llms.txt to this project"
|
|
111
|
+
"Make this site readable by AI agents"
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
The agent will detect your framework, read your pages and blog posts from source, generate `llms.txt`, and write it to the right directory (e.g. `public/llms.txt`) after you confirm.
|
|
115
|
+
|
|
116
|
+
**Live Site Mode** provide a URL:
|
|
117
|
+
```
|
|
118
|
+
"Generate an llms.txt for https://yoursite.com"
|
|
119
|
+
"Does https://yoursite.com have an llms.txt? If not, create one."
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
The agent will:
|
|
123
|
+
1. Check if `llms.txt` already exists at the domain
|
|
124
|
+
2. Crawl homepage, docs, blog, about, pricing, and API pages
|
|
125
|
+
3. Generate `llms.txt` following the official spec
|
|
126
|
+
4. Optionally generate `llms-full.txt` with full page content
|
|
127
|
+
5. Save the file locally and give you deployment instructions
|
|
128
|
+
6. Optionally open a GitHub PR if configured
|
|
129
|
+
|
|
130
|
+
## Where to Deploy the File
|
|
131
|
+
|
|
132
|
+
Place `llms.txt` at your web root so it's accessible at `https://yourdomain.com/llms.txt`:
|
|
133
|
+
|
|
134
|
+
| Platform | File Location |
|
|
135
|
+
|----------|--------------|
|
|
136
|
+
| Next.js / Vercel | `/public/llms.txt` |
|
|
137
|
+
| Astro | `/public/llms.txt` |
|
|
138
|
+
| Nuxt | `/public/llms.txt` |
|
|
139
|
+
| GitHub Pages | Repository root |
|
|
140
|
+
| Hugo | `/static/llms.txt` |
|
|
141
|
+
| WordPress | Upload via FTP to web root |
|
|
142
|
+
|
|
143
|
+
## Output Files
|
|
144
|
+
|
|
145
|
+
| File | Description |
|
|
146
|
+
|------|-------------|
|
|
147
|
+
| `llms.txt` | Structured link map. LLMs follow links to find content |
|
|
148
|
+
| `llms-full.txt` | Full prose content of key pages. LLMs ingest everything at once |
|
|
149
|
+
|
|
150
|
+
## Project Structure
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
llms-txt-generator/
|
|
154
|
+
├── SKILL.md # Agent instructions
|
|
155
|
+
├── README.md # This file
|
|
156
|
+
├── .env.example # Environment variables template
|
|
157
|
+
├── evals/
|
|
158
|
+
│ └── evals.json # Test prompts for skill evaluation
|
|
159
|
+
└── references/
|
|
160
|
+
├── llms-txt-spec.md # The llms.txt format specification
|
|
161
|
+
└── output-template.md # Exact output template with example
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## License
|
|
165
|
+
|
|
166
|
+
MIT
|