@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
|
@@ -13,7 +13,7 @@ npx "@opendirectory.dev/skills" install docs-from-code --target claude
|
|
|
13
13
|
### Video Tutorial
|
|
14
14
|
Watch this quick video to see how it's done:
|
|
15
15
|
|
|
16
|
-
https://github.com/user-attachments/assets/
|
|
16
|
+
https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
17
17
|
|
|
18
18
|
### Step 1: Download the skill from GitHub
|
|
19
19
|
1. Copy the URL of this specific skill folder from your browser's address bar.
|
|
@@ -27,95 +27,3 @@ https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
|
|
|
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 Generates
|
|
32
|
-
|
|
33
|
-
| Output | When |
|
|
34
|
-
|--------|------|
|
|
35
|
-
| `README.md` (full) | Project has no README |
|
|
36
|
-
| `README.md` (sections) | README exists but API or architecture sections are stale |
|
|
37
|
-
| `docs/API.md` | Project has HTTP routes |
|
|
38
|
-
| Architecture section | Always, from graphify's god nodes and communities |
|
|
39
|
-
| GitHub PR | When you ask it to open one |
|
|
40
|
-
|
|
41
|
-
## Why graphify?
|
|
42
|
-
|
|
43
|
-
The skill uses graphify as its extraction engine:
|
|
44
|
-
- 20 languages via tree-sitter AST: Python, TypeScript, Go, Rust, Java, and 15 more
|
|
45
|
-
- Architecture insight: god nodes and community clusters show what everything connects through
|
|
46
|
-
- 71.5x fewer tokens than reading raw files, efficient on large codebases
|
|
47
|
-
- SHA256 cache: re-runs only process changed files
|
|
48
|
-
- Honest tagging: `EXTRACTED` (found in source) vs `INFERRED` (reasonable inference with confidence score)
|
|
49
|
-
- Extracts rationale from `# NOTE:`, `# WHY:`, `# HACK:` comments and docstrings
|
|
50
|
-
|
|
51
|
-
The bundled `scripts/` (TypeScript and Python AST extractors) serve as a fallback if graphify is unavailable.
|
|
52
|
-
|
|
53
|
-
## Supported Languages (via graphify)
|
|
54
|
-
|
|
55
|
-
Python, TypeScript, JavaScript, Go, Rust, Java, C, C++, Ruby, C#, Kotlin, Scala, PHP, Swift, Lua, Zig, PowerShell, Elixir, Objective-C, Julia
|
|
56
|
-
|
|
57
|
-
## Requirements
|
|
58
|
-
|
|
59
|
-
- Python 3.10+ (for graphify)
|
|
60
|
-
- Node.js 18+ (for fallback TypeScript extractor)
|
|
61
|
-
- `gh` CLI (optional, for opening PRs automatically)
|
|
62
|
-
- `GITHUB_TOKEN` env var (optional, for PRs)
|
|
63
|
-
|
|
64
|
-
## Setup
|
|
65
|
-
|
|
66
|
-
### 1. Install graphify
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
pip install graphifyy
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
No API keys needed for extraction. graphify uses your agent's existing model access.
|
|
73
|
-
|
|
74
|
-
### 2. Configure (Optional)
|
|
75
|
-
|
|
76
|
-
```bash
|
|
77
|
-
cp .env.example .env
|
|
78
|
-
# Add GITHUB_TOKEN if you want auto-PR support
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
## How to Use
|
|
82
|
-
|
|
83
|
-
Be inside your project and ask:
|
|
84
|
-
|
|
85
|
-
```
|
|
86
|
-
"Generate a README for this project"
|
|
87
|
-
"My API docs are out of date, update them from the code"
|
|
88
|
-
"Create docs/API.md from my FastAPI routes"
|
|
89
|
-
"Add an architecture section to our README"
|
|
90
|
-
"Document this TypeScript library"
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
The agent will:
|
|
94
|
-
1. Run `graphify . --no-viz` to build a knowledge graph of your codebase
|
|
95
|
-
2. Read `GRAPH_REPORT.md` for god nodes, communities, and architecture insights
|
|
96
|
-
3. Query the graph for routes, types, and data models
|
|
97
|
-
4. Read existing docs to understand what needs updating
|
|
98
|
-
5. Generate accurate docs grounded in the graph
|
|
99
|
-
6. Write files and optionally open a GitHub PR
|
|
100
|
-
|
|
101
|
-
## Project Structure
|
|
102
|
-
|
|
103
|
-
```
|
|
104
|
-
docs-from-code/
|
|
105
|
-
├── SKILL.md # Agent instructions
|
|
106
|
-
├── README.md # This file
|
|
107
|
-
├── .env.example # Environment variables template
|
|
108
|
-
├── scripts/
|
|
109
|
-
│ ├── package.json # Script dependencies (ts-morph)
|
|
110
|
-
│ ├── extract_ts.ts # TypeScript/JS AST extractor
|
|
111
|
-
│ └── extract_py.py # Python AST extractor
|
|
112
|
-
├── references/
|
|
113
|
-
│ ├── extraction-guide.md # Per-framework extraction notes
|
|
114
|
-
│ └── output-template.md # README and API.md templates
|
|
115
|
-
└── evals/
|
|
116
|
-
└── evals.json # Test prompts
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
## License
|
|
120
|
-
|
|
121
|
-
MIT
|
|
@@ -11,7 +11,7 @@ npx "@opendirectory.dev/skills" install email-newsletter --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.
|
|
@@ -25,74 +25,3 @@ https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
|
|
|
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
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
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## What it does
|
|
32
|
-
|
|
33
|
-
- Asks the 19 questions that actually determine your newsletter layout
|
|
34
|
-
- Writes all sections: hero, intro, main content, stat callout, CTA, footer
|
|
35
|
-
- Generates table-based HTML with inline styles -- compatible with every major email client
|
|
36
|
-
- Tunes variable syntax per platform (Loops, Mailchimp, Beehiiv, Resend)
|
|
37
|
-
- Produces 3 subject line options using proven formulas
|
|
38
|
-
- Includes a plain-text fallback for deliverability
|
|
39
|
-
|
|
40
|
-
## Example
|
|
41
|
-
|
|
42
|
-
> "Write a newsletter about how AI is changing B2B sales. Audience: VPs of Sales at 100-500 person SaaS companies. CTA: join our upcoming webinar. Tone: direct. Platform: Beehiiv."
|
|
43
|
-
|
|
44
|
-
Output: full HTML email with hero headline, 3-section body, stat callout, CTA block, and footer -- plus 3 subject line options and a plain-text version, tuned for Beehiiv.
|
|
45
|
-
|
|
46
|
-
## Supported platforms
|
|
47
|
-
|
|
48
|
-
| Platform | Notes |
|
|
49
|
-
|---|---|
|
|
50
|
-
| Loops | `{{unsubscribe_url}}` syntax. Paste into custom HTML editor |
|
|
51
|
-
| Mailchimp | `*\|UNSUB\|*` syntax. Use "Code your own" template. Includes `mc:edit` regions |
|
|
52
|
-
| Beehiiv | `%%unsubscribe_url%%` syntax. Works with custom HTML block |
|
|
53
|
-
| Resend | `{unsubscribeUrl}` syntax. React Email `.tsx` output available on request |
|
|
54
|
-
| Generic | `[UNSUBSCRIBE_URL]` placeholder -- replace before sending |
|
|
55
|
-
|
|
56
|
-
## Output formats
|
|
57
|
-
|
|
58
|
-
- **Standard HTML** (default): inline-styled, table-based, 600px max-width
|
|
59
|
-
- **Plain text**: always included unless you opt out
|
|
60
|
-
- **React Email** (on request): `.tsx` component output for Resend / dev teams
|
|
61
|
-
|
|
62
|
-
## Parameters
|
|
63
|
-
|
|
64
|
-
| Param | Required | Notes |
|
|
65
|
-
|---|---|---|
|
|
66
|
-
| topic | Yes | What the newsletter is about |
|
|
67
|
-
| audience | Yes | Who is reading |
|
|
68
|
-
| cta | Yes | Primary action you want readers to take |
|
|
69
|
-
| company_name | No | Brand name for header and footer |
|
|
70
|
-
| tagline | No | One-line description for footer |
|
|
71
|
-
| city_country | No | Footer location (e.g. "San Francisco, US") |
|
|
72
|
-
| cta_url | No | Actual link for CTA button -- placeholder used if omitted |
|
|
73
|
-
| brand_color | No | Hex code -- used for strip, stat border, category label |
|
|
74
|
-
| background | No | dark / light / custom hex (default: dark) |
|
|
75
|
-
| display_font | No | editorial serif / modern sans / system fonts (default: Instrument Serif) |
|
|
76
|
-
| button_style | No | pill / softly rounded / sharp (default: pill) |
|
|
77
|
-
| visual_style | No | editorial / technical+data / warm+founder / bold+campaign |
|
|
78
|
-
| tone | No | educational / conversational / bold+direct / formal / playful |
|
|
79
|
-
| platform | No | loops / mailchimp / beehiiv / resend (default: generic) |
|
|
80
|
-
| personalization | No | none / first name / first name + company (default: none) |
|
|
81
|
-
| length | No | brief (300w) / standard (500-700w) / deep dive (800w+) |
|
|
82
|
-
| format | No | editorial article / numbered breakdown / personal story / data report |
|
|
83
|
-
| subject_line | No | If omitted, 3 options are suggested |
|
|
84
|
-
| secondary_sections | No | sponsor block / product callout / event / quick links |
|
|
85
|
-
|
|
86
|
-
## No API keys required
|
|
87
|
-
|
|
88
|
-
Pure AI skill. No external services, no scraping, no dependencies to install.
|
|
89
|
-
|
|
90
|
-
## Design principles
|
|
91
|
-
|
|
92
|
-
- Max width 600px (email client standard)
|
|
93
|
-
- Inline styles only -- no external CSS, email clients strip it
|
|
94
|
-
- Table-based layout for Outlook compatibility
|
|
95
|
-
- Georgia serif for hero headlines, Arial/system font for body
|
|
96
|
-
- CTA buttons use the table+td VML-compatible structure
|
|
97
|
-
- All images include alt text
|
|
98
|
-
- Dark mode aware where platform supports it
|
|
@@ -14,7 +14,7 @@ npx "@opendirectory.dev/skills" install explain-this-pr --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,71 +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 the PR diff and metadata via `gh`
|
|
35
|
-
- Writes two paragraphs: what changed (technical) and why it matters (impact)
|
|
36
|
-
- Posts the explanation as a PR comment with `gh pr comment`
|
|
37
|
-
- Works with any public or private repo you have access to via `gh`
|
|
38
|
-
|
|
39
|
-
## Requirements
|
|
40
|
-
|
|
41
|
-
| Requirement | Purpose | How to Set Up |
|
|
42
|
-
|------------|---------|--------------|
|
|
43
|
-
| `gh` CLI | Fetching PR data and posting comments | https://cli.github.com, then run `gh auth login` |
|
|
44
|
-
|
|
45
|
-
No API keys needed.
|
|
46
|
-
|
|
47
|
-
## How to Use
|
|
48
|
-
|
|
49
|
-
Explain a PR by URL:
|
|
50
|
-
|
|
51
|
-
```
|
|
52
|
-
"Explain this PR: https://github.com/owner/repo/pull/123"
|
|
53
|
-
"What does this PR do? https://github.com/owner/repo/pull/456"
|
|
54
|
-
"Summarize this pull request: [URL]"
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
Explain by PR number (in the current repo):
|
|
58
|
-
|
|
59
|
-
```
|
|
60
|
-
"Explain PR #42"
|
|
61
|
-
"Add a summary comment to PR #99"
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
Explain the current branch PR:
|
|
65
|
-
|
|
66
|
-
```
|
|
67
|
-
"Explain the current branch PR"
|
|
68
|
-
"Add a plain-English comment to my PR"
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
Output without posting:
|
|
72
|
-
|
|
73
|
-
```
|
|
74
|
-
"Explain this PR but don't post the comment: [URL]"
|
|
75
|
-
"What does this PR change? Just give me the text."
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
## Output Format
|
|
79
|
-
|
|
80
|
-
Two paragraphs, under 150 words total.
|
|
81
|
-
|
|
82
|
-
Paragraph 1: What it does (technical). Names the specific files, functions, or systems that changed. States the before/after if visible in the diff.
|
|
83
|
-
|
|
84
|
-
Paragraph 2: Why it matters (impact). Explains who benefits and what problem is solved. Omitted if there is no clear "why" in the diff or commits. The skill never guesses at impact.
|
|
85
|
-
|
|
86
|
-
## Project Structure
|
|
87
|
-
|
|
88
|
-
```
|
|
89
|
-
explain-this-pr/
|
|
90
|
-
├── SKILL.md
|
|
91
|
-
├── README.md
|
|
92
|
-
└── evals/
|
|
93
|
-
└── evals.json
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
## License
|
|
97
|
-
|
|
98
|
-
MIT
|
|
@@ -11,12 +11,12 @@ npx "@opendirectory.dev/skills" install gh-issue-to-demand-signal --target claud
|
|
|
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
|
-
1.
|
|
18
|
-
2.
|
|
19
|
-
3.
|
|
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
20
|
|
|
21
21
|
### Step 2: Install the Skill in Claude
|
|
22
22
|
1. Open your **Claude desktop app**.
|
|
@@ -25,94 +25,3 @@ https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
|
|
|
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
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
|
-
|
|
29
|
-
## What It Does
|
|
30
|
-
|
|
31
|
-
- Fetches up to 200 open issues from any public GitHub repo (no auth required)
|
|
32
|
-
- Filters noise locally: removes PRs, bot issues, zero-engagement issues, and chore-pattern titles
|
|
33
|
-
- Computes a demand score per issue: `(reactions["+1"] x 2) + (comments x 0.5)`
|
|
34
|
-
- Detects "ignored demand": issues with 10+ reactions, open 6+ months, no planned label
|
|
35
|
-
- Clusters issues into 6 categories using the AI running the skill (no external API key needed): feature gaps, bug patterns, UX complaints, performance issues, missing integrations, missing docs
|
|
36
|
-
- Generates 5-8 cluster themes with total demand scores
|
|
37
|
-
- Messaging brief: 3 positioning angles + 3 outreach hooks + cluster-specific headlines
|
|
38
|
-
- Saves output to `docs/demand-signals/[owner]-[repo]-[date].md`
|
|
39
|
-
|
|
40
|
-
## Requirements
|
|
41
|
-
|
|
42
|
-
| Requirement | Purpose | How to Set Up |
|
|
43
|
-
|---|---|---|
|
|
44
|
-
| GitHub token | Raises rate limit from 60/hr to 5000/hr | github.com/settings/tokens (no scopes needed for public repos) |
|
|
45
|
-
|
|
46
|
-
No external AI API key needed. The skill uses the AI assistant running it (Claude, Gemini, Copilot) to do the clustering and messaging brief. GitHub token is optional but recommended for repeated use.
|
|
47
|
-
|
|
48
|
-
## Setup
|
|
49
|
-
|
|
50
|
-
```bash
|
|
51
|
-
cp .env.example .env
|
|
52
|
-
# Add GITHUB_TOKEN (optional, recommended for repeated use)
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
## How to Use
|
|
56
|
-
|
|
57
|
-
```
|
|
58
|
-
"Scan competitor GitHub issues: https://github.com/vercel/next.js"
|
|
59
|
-
"What are users asking for in facebook/react?"
|
|
60
|
-
"Find demand gaps in linear-app/linear"
|
|
61
|
-
"Turn GitHub complaints into messaging: https://github.com/supabase/supabase"
|
|
62
|
-
"What should I build based on competitor issues? vercel/next.js"
|
|
63
|
-
"Which features are users begging for in this repo?"
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
## Why This Matters
|
|
67
|
-
|
|
68
|
-
A busy product team cannot read 500 open issues. This skill does the work: ranks by real user demand (reaction counts), clusters into actionable GTM categories, detects ignored demand (where competitors have been silent the longest), and translates raw complaints into positioning language.
|
|
69
|
-
|
|
70
|
-
**The demand score formula:** `(reactions["+1"] x 2) + (comments x 0.5)`. Reactions are weighted higher than comments because reactions are pure signal -- a thumbs-up means "I want this." Comments include maintainer responses, off-topic discussion, and spam.
|
|
71
|
-
|
|
72
|
-
**Ignored demand is your opportunity:** An issue with 50 reactions that has been open for 2 years with no planned label means their users have been waiting. That is your product's first billboard.
|
|
73
|
-
|
|
74
|
-
## The 6 Demand Categories
|
|
75
|
-
|
|
76
|
-
| Category | What it captures |
|
|
77
|
-
|---|---|
|
|
78
|
-
| `feature_gap` | Functionality that does not exist yet |
|
|
79
|
-
| `bug_pattern` | Recurring broken behavior that erodes trust |
|
|
80
|
-
| `ux_complaint` | Friction, confusion, or workflow problems |
|
|
81
|
-
| `performance` | Slowness, timeouts, resource usage |
|
|
82
|
-
| `integration_missing` | Requests to connect with other tools or APIs |
|
|
83
|
-
| `docs_missing` | Confusion caused by absent or wrong documentation |
|
|
84
|
-
|
|
85
|
-
## Output
|
|
86
|
-
|
|
87
|
-
Each run produces:
|
|
88
|
-
|
|
89
|
-
1. **Demand Gap Leaderboard**: clusters ranked by total demand score
|
|
90
|
-
2. **Ignored Demand section**: issues open 6+ months with 10+ reactions and no response
|
|
91
|
-
3. **Top 10 Highest-Demand Issues**: verbatim titles, reaction counts, direct GitHub links
|
|
92
|
-
4. **Cluster Deep Dives**: top 3 clusters with theme name, pain summary, top 3 verbatim issues
|
|
93
|
-
5. **Messaging Brief**: 3 positioning angles citing exact demand evidence
|
|
94
|
-
6. **GTM Angles**: 3 outreach hooks using verbatim issue language
|
|
95
|
-
|
|
96
|
-
## Cost per Run
|
|
97
|
-
|
|
98
|
-
- GitHub API: 2 calls -- free (unauthenticated: 60/hr limit, token: 5000/hr)
|
|
99
|
-
- AI analysis: uses the model already running the skill -- no additional cost
|
|
100
|
-
- Total: free
|
|
101
|
-
|
|
102
|
-
## Project Structure
|
|
103
|
-
|
|
104
|
-
```
|
|
105
|
-
gh-issue-to-demand-signal/
|
|
106
|
-
├── SKILL.md
|
|
107
|
-
├── README.md
|
|
108
|
-
├── .env.example
|
|
109
|
-
├── evals/
|
|
110
|
-
│ └── evals.json
|
|
111
|
-
└── references/
|
|
112
|
-
├── demand-categories.md
|
|
113
|
-
└── gtm-translation.md
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
## License
|
|
117
|
-
|
|
118
|
-
MIT
|
|
@@ -13,7 +13,7 @@ npx "@opendirectory.dev/skills" install google-trends-api-skills --target claude
|
|
|
13
13
|
### Video Tutorial
|
|
14
14
|
Watch this quick video to see how it's done:
|
|
15
15
|
|
|
16
|
-
https://github.com/user-attachments/assets/
|
|
16
|
+
https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
17
17
|
|
|
18
18
|
### Step 1: Download the skill from GitHub
|
|
19
19
|
1. Copy the URL of this specific skill folder from your browser's address bar.
|
|
@@ -27,76 +27,3 @@ https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
|
|
|
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
|
-
## Skills
|
|
32
|
-
|
|
33
|
-
### 1. `google-trends-api/`
|
|
34
|
-
The API layer — knows how to query Google Trends through SerpApi, handle responses, manage rate limits, and cache results.
|
|
35
|
-
|
|
36
|
-
### 2. `seo-keyword-research/`
|
|
37
|
-
The SEO workflow — uses Google Trends data to find breakout keywords, build content structure, and generate SEO-optimized blog outlines.
|
|
38
|
-
|
|
39
|
-
## Quick Start
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
# 1. Get a free API key (250 searches/month)
|
|
43
|
-
# https://serpapi.com/
|
|
44
|
-
|
|
45
|
-
# 2. Set your key
|
|
46
|
-
export SERPAPI_KEY="your_key_here"
|
|
47
|
-
|
|
48
|
-
# 3. Install dependency
|
|
49
|
-
pip install requests
|
|
50
|
-
|
|
51
|
-
# 4. Run keyword research for a blog topic
|
|
52
|
-
python seo-keyword-research/scripts/blog_seo_research.py "kubernetes deployment"
|
|
53
|
-
|
|
54
|
-
# 5. Or just discover trending keywords
|
|
55
|
-
python google-trends-api/scripts/discover_keywords.py "AI developer tools"
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
## Directory Structure
|
|
59
|
-
|
|
60
|
-
```
|
|
61
|
-
google-trends-api/
|
|
62
|
-
├── SKILL.md # API skill (endpoints, params, usage)
|
|
63
|
-
├── scripts/
|
|
64
|
-
│ └── discover_keywords.py # Keyword discovery script
|
|
65
|
-
└── references/
|
|
66
|
-
└── api-responses.md # Full API response structures
|
|
67
|
-
|
|
68
|
-
seo-keyword-research/
|
|
69
|
-
├── SKILL.md # SEO workflow skill (research -> outline)
|
|
70
|
-
├── scripts/
|
|
71
|
-
│ └── blog_seo_research.py # Full blog SEO research script
|
|
72
|
-
└── references/
|
|
73
|
-
├── keyword-placement-guide.md # Detailed keyword placement rules
|
|
74
|
-
└── tech-blog-examples.md # Real examples for tech/dev blogs
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
## How It Works
|
|
78
|
-
|
|
79
|
-
```
|
|
80
|
-
User: "Write a blog about kubernetes deployment"
|
|
81
|
-
|
|
|
82
|
-
v
|
|
83
|
-
[google-trends-api] RELATED_QUERIES -> finds "kubernetes vs docker" (Breakout!)
|
|
84
|
-
[google-trends-api] RELATED_TOPICS -> finds "Helm", "CI/CD", "Container Orchestration"
|
|
85
|
-
|
|
|
86
|
-
v
|
|
87
|
-
[seo-keyword-research] Selects primary keyword, builds outline
|
|
88
|
-
|
|
|
89
|
-
v
|
|
90
|
-
Output: SEO-optimized blog outline targeting trending keywords
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
## Specification
|
|
94
|
-
|
|
95
|
-
These skills follow the [Agent Skills specification](https://agentskills.io/specification). Each skill has:
|
|
96
|
-
- `SKILL.md` with YAML frontmatter (name, description, compatibility, metadata)
|
|
97
|
-
- `scripts/` for executable code
|
|
98
|
-
- `references/` for detailed documentation (loaded on demand)
|
|
99
|
-
|
|
100
|
-
## License
|
|
101
|
-
|
|
102
|
-
MIT
|
|
@@ -7,10 +7,11 @@ Generate a professionally designed case study PDF for B2B SaaS sales and marketi
|
|
|
7
7
|
```bash
|
|
8
8
|
npx "@opendirectory.dev/skills" install graphic-case-study --target claude
|
|
9
9
|
```
|
|
10
|
+
|
|
10
11
|
### Video Tutorial
|
|
11
12
|
Watch this quick video to see how it's done:
|
|
12
13
|
|
|
13
|
-
https://github.com/user-attachments/assets/
|
|
14
|
+
https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
14
15
|
|
|
15
16
|
### Step 1: Download the skill from GitHub
|
|
16
17
|
1. Copy the URL of this specific skill folder from your browser's address bar.
|
|
@@ -23,99 +24,4 @@ https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
|
|
|
23
24
|
3. Click on the **Skills** tab, then click on the **+** (plus) icon button to create a new skill.
|
|
24
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).
|
|
25
26
|
|
|
26
|
-
> **Note:**
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## What it does
|
|
31
|
-
|
|
32
|
-
- Asks the questions that determine how the case study should be structured
|
|
33
|
-
- Interviews you (or processes your notes) to extract customer story details
|
|
34
|
-
- Structures the narrative: customer context → challenge → solution → results → testimonial
|
|
35
|
-
- Generates a single self-contained HTML file -- opens in any browser, no build tools
|
|
36
|
-
- Splits into per-page HTML files for individual sharing or editing
|
|
37
|
-
- Exports a print-ready PDF via Playwright (A4 portrait, 1200×1697px)
|
|
38
|
-
- Supports 1-pager summary card, standard 2-pager, and detailed 4-pager formats
|
|
39
|
-
|
|
40
|
-
## Example
|
|
41
|
-
|
|
42
|
-
> "Create a 2-page case study for Acme Corp. They were spending 20 hrs/week on manual reporting. We automated it. They saved 80% of that time and reduced errors by 95%. Use midnight-editorial style."
|
|
43
|
-
|
|
44
|
-
Output: 2-page PDF with cover, challenge/solution spread, results stat page, and closing CTA.
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## Supported Styles
|
|
49
|
-
|
|
50
|
-
| Style | Best for |
|
|
51
|
-
|---|---|
|
|
52
|
-
| clean-slate | Enterprise B2B, sales teams, any audience that expects professionalism |
|
|
53
|
-
| midnight-editorial | Tech/AI companies, premium B2B, investor-grade materials |
|
|
54
|
-
| matt-gray | Board materials, internal reviews, professional mixed audiences |
|
|
55
|
-
| product-minimal | Product companies, design-forward B2B, design-savvy buyers |
|
|
56
|
-
| mint-pixel-corporate | SaaS sales, tech startups, growth-stage B2B |
|
|
57
|
-
| warm-earth | Agencies, consultancies, service businesses, health/education tech |
|
|
58
|
-
| brutalist | Standout sales materials, design-forward agencies, bold brands |
|
|
59
|
-
| magazine-red | Marketing agencies, brand-forward companies, editorial-style stories |
|
|
60
|
-
| soft-cloud | Onboarding materials, customer education, approachable SaaS |
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
## Supported Page Layouts
|
|
65
|
-
|
|
66
|
-
| Layout | Purpose |
|
|
67
|
-
|---|---|
|
|
68
|
-
| cover | Opening page -- customer name, headline result, logos |
|
|
69
|
-
| overview | At-a-glance: company profile, industry, use case |
|
|
70
|
-
| challenge | The problem -- context paragraph + pain points |
|
|
71
|
-
| solution | How your product solved it -- feature callouts |
|
|
72
|
-
| results | Key metrics in large stat format + supporting narrative |
|
|
73
|
-
| testimonial | Full-width pull quote with attribution |
|
|
74
|
-
| closing-cta | Vendor logo + contact info + next step CTA |
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## Output
|
|
79
|
-
|
|
80
|
-
| File | What it is |
|
|
81
|
-
|---|---|
|
|
82
|
-
| `case-study/[slug]/index.html` | Full case study, browser-ready |
|
|
83
|
-
| `case-study/[slug]/page-01.html` ... | Per-page HTML files for individual sharing |
|
|
84
|
-
| `case-study/[slug].pdf` | Print-ready PDF (A4 portrait) |
|
|
85
|
-
|
|
86
|
-
Standard dimensions: 1200×1697px (A4 portrait). Landscape 4:3 (1200×900) available on request.
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
## Parameters
|
|
91
|
-
|
|
92
|
-
| Param | Required | Notes |
|
|
93
|
-
|---|---|---|
|
|
94
|
-
| customer_name | Yes | Company name (or "Anonymous Fortune 500 Retailer" to anonymize) |
|
|
95
|
-
| challenge | Yes | Core problem in 2-5 sentences |
|
|
96
|
-
| solution | Yes | What your product did |
|
|
97
|
-
| results | Yes | Measurable outcomes -- ideally 3 stats |
|
|
98
|
-
| customer_context | No | Industry, size, location (for overview page) |
|
|
99
|
-
| testimonial | No | Customer quote + name + title |
|
|
100
|
-
| page_count | No | 1 / 2 / 4 (default: 2) |
|
|
101
|
-
| customer_logo | No | Logo URL for cover page |
|
|
102
|
-
| your_company_name | No | Vendor name + logo URL for CTA page |
|
|
103
|
-
| style | No | One of 9 named presets or "show me options" (default: clean-slate) |
|
|
104
|
-
| orientation | No | A4 portrait (default) or landscape 4:3 |
|
|
105
|
-
| anonymize | No | Keep name or replace with industry descriptor |
|
|
106
|
-
| slug | No | Filename slug (derived from customer name if omitted) |
|
|
107
|
-
|
|
108
|
-
---
|
|
109
|
-
|
|
110
|
-
## Dependencies
|
|
111
|
-
|
|
112
|
-
This skill requires the `frontend-slides` skill files at:
|
|
113
|
-
`/Users/ksd/Desktop/Varnan_skills/frontend-slides/`
|
|
114
|
-
|
|
115
|
-
Specifically:
|
|
116
|
-
- `viewport-base.css` -- responsive page foundation (included verbatim in generated HTML)
|
|
117
|
-
- `scripts/export-pdf.sh` -- PDF export via Playwright (Node.js required, auto-installs; use `--portrait` flag for A4)
|
|
118
|
-
|
|
119
|
-
## No API keys required
|
|
120
|
-
|
|
121
|
-
Pure AI skill. No external services, no scraping, no dependencies 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!
|
|
@@ -8,6 +8,24 @@ Generate publication-quality data visualization charts as PNG using Chart.js v4.
|
|
|
8
8
|
npx "@opendirectory.dev/skills" install graphic-chart --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, paste it at [download-directory.github.io](https://download-directory.github.io/), download the zip.
|
|
@@ -102,3 +120,4 @@ Auto-installed on first run via npm:
|
|
|
102
120
|
- Chromium browser binary (~200MB, downloaded once and cached)
|
|
103
121
|
|
|
104
122
|
No API keys required.
|
|
123
|
+
|