@opendirectory.dev/skills 0.1.65 → 0.1.66

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.
Files changed (54) hide show
  1. package/package.json +1 -1
  2. package/skills/blog-cover-image-cli/README.md +112 -1
  3. package/skills/brand-alchemy/README.md +31 -1
  4. package/skills/claude-md-generator/README.md +73 -1
  5. package/skills/cold-email-verifier/README.md +41 -1
  6. package/skills/competitor-pr-finder/README.md +69 -1
  7. package/skills/cook-the-blog/README.md +82 -1
  8. package/skills/dependency-update-bot/README.md +96 -1
  9. package/skills/docs-from-code/README.md +93 -1
  10. package/skills/email-newsletter/README.md +72 -1
  11. package/skills/explain-this-pr/README.md +69 -1
  12. package/skills/gh-issue-to-demand-signal/README.md +95 -4
  13. package/skills/google-trends-api-skills/README.md +74 -1
  14. package/skills/graphic-case-study/README.md +97 -3
  15. package/skills/graphic-chart/README.md +0 -19
  16. package/skills/graphic-ebook/README.md +99 -3
  17. package/skills/graphic-gif/README.md +0 -19
  18. package/skills/graphic-slide-deck/README.md +104 -2
  19. package/skills/hackernews-intel/README.md +156 -1
  20. package/skills/human-tone/README.md +43 -1
  21. package/skills/kill-the-standup/README.md +79 -1
  22. package/skills/linkedin-job-post-to-buyer-pain-map/README.md +3 -3
  23. package/skills/linkedin-post-generator/README.md +103 -1
  24. package/skills/llms-txt-generator/README.md +138 -1
  25. package/skills/luma-attendees-scraper/README.md +0 -21
  26. package/skills/map-your-market/README.md +121 -1
  27. package/skills/meeting-brief-generator/README.md +85 -1
  28. package/skills/meta-ads-skill/README.md +67 -1
  29. package/skills/meta-tribeV2-skill/README.md +64 -3
  30. package/skills/newsletter-digest/README.md +142 -1
  31. package/skills/noise-to-linkedin-carousel/README.md +0 -21
  32. package/skills/noise2blog/README.md +102 -1
  33. package/skills/npm-downloads-to-leads/README.md +131 -12
  34. package/skills/oss-launch-kit/README.md +0 -21
  35. package/skills/outreach-sequence-builder/README.md +103 -1
  36. package/skills/position-me/README.md +65 -1
  37. package/skills/pr-description-writer/README.md +76 -1
  38. package/skills/pricing-finder/README.md +114 -1
  39. package/skills/pricing-page-psychology-audit/README.md +85 -1
  40. package/skills/product-update-logger/README.md +172 -4
  41. package/skills/producthunt-launch-kit/README.md +90 -1
  42. package/skills/reddit-icp-monitor/README.md +112 -1
  43. package/skills/reddit-post-engine/README.md +98 -1
  44. package/skills/schema-markup-generator/README.md +109 -1
  45. package/skills/sdk-adoption-tracker/README.md +127 -1
  46. package/skills/show-hn-writer/README.md +83 -1
  47. package/skills/stargazer/README.md +0 -21
  48. package/skills/tweet-thread-from-blog/README.md +104 -1
  49. package/skills/twitter-GTM-find-skill/README.md +37 -1
  50. package/skills/vc-curated-match/README.md +0 -21
  51. package/skills/vc-finder/README.md +98 -5
  52. package/skills/vid-motion-graphics/README.md +65 -5
  53. package/skills/where-your-customer-lives/README.md +0 -19
  54. package/skills/yc-intent-radar-skill/README.md +35 -1
@@ -14,7 +14,7 @@ npx "@opendirectory.dev/skills" install newsletter-digest --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/cea8b565-2002-4a87-8857-d902bfcfdc1c
17
+ https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
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,3 +28,144 @@ https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
28
28
  4. Choose the option to **Upload a skill**, and drag and drop the `.zip` file (or you can extract it and drop the folder, both work).
29
29
 
30
30
  > **Note:** For some skills (like `position-me`), the `SKILL.md` file might be located inside a subfolder. Always make sure you are uploading the specific folder that contains the `SKILL.md` file!
31
+
32
+ ## What It Does
33
+
34
+ - Reads your RSS/Atom feed list from `feeds.json`
35
+ - Fetches all articles published in the last 7 days (configurable)
36
+ - Deduplicates across feeds and sorts by date
37
+ - Uses Gemini to synthesize a digest in your chosen format
38
+ - Publishes to Ghost as a draft or live post
39
+ - Outputs formatted Markdown for Substack, Notion, or any other platform
40
+
41
+ ## Digest Formats
42
+
43
+ | Format | Use When | Target Length |
44
+ |--------|----------|---------------|
45
+ | Weekly Roundup | General digest covering top stories across all feeds | 350-500 words |
46
+ | Topic Deep Dive | Focused issue on a single topic (AI, security, etc.) | 450-650 words |
47
+ | Curated Picks | 5 selected articles with editorial context | 250-350 words |
48
+
49
+ ## Requirements
50
+
51
+ | Requirement | Purpose | Where to Get It |
52
+ |------------|---------|-----------------|
53
+ | GEMINI_API_KEY | Digest synthesis | https://ai.google.dev |
54
+ | GHOST_URL + GHOST_ADMIN_KEY | Ghost publishing (optional) | Ghost Admin, Settings, Integrations |
55
+ | Node.js 20+ | Running scripts | https://nodejs.org |
56
+
57
+ Tavily is not required. The skill uses article excerpts from RSS feeds directly.
58
+
59
+ ## Setup
60
+
61
+ ### 1. Install dependencies
62
+
63
+ ```bash
64
+ cd /path/to/newsletter-digest
65
+ npm install
66
+ ```
67
+
68
+ ### 2. Configure environment variables
69
+
70
+ ```bash
71
+ cp .env.example .env
72
+ # Edit .env with your keys
73
+ ```
74
+
75
+ ### 3. Configure your feeds
76
+
77
+ Edit `feeds.json` with the RSS feeds you want to monitor:
78
+
79
+ ```json
80
+ [
81
+ { "url": "https://hnrss.org/frontpage", "name": "Hacker News" },
82
+ { "url": "https://feeds.feedburner.com/TheHackersNews", "name": "The Hacker News" },
83
+ { "url": "https://changelog.com/feed", "name": "Changelog" }
84
+ ]
85
+ ```
86
+
87
+ The file ships with 5 example feeds. Replace them with your own.
88
+
89
+ ### 4. Set up Ghost publishing (optional)
90
+
91
+ 1. Go to Ghost Admin, Settings, Integrations
92
+ 2. Click "Add custom integration"
93
+ 3. Name it "newsletter-digest"
94
+ 4. Copy the Admin API Key (format: `key_id:secret`)
95
+ 5. Set `GHOST_ADMIN_KEY=key_id:secret` in `.env`
96
+ 6. Set `GHOST_URL=https://your-ghost-site.com` in `.env`
97
+
98
+ ## How to Use
99
+
100
+ Generate a weekly digest:
101
+
102
+ ```
103
+ "Generate a weekly digest from my RSS feeds"
104
+ "Create this week's newsletter"
105
+ "Summarize my feeds from the last 7 days"
106
+ ```
107
+
108
+ Choose a specific format:
109
+
110
+ ```
111
+ "Create a topic deep dive about AI agents from this week's news"
112
+ "Generate a curated picks digest for this week"
113
+ "Write a weekly roundup newsletter"
114
+ ```
115
+
116
+ Extend the date window:
117
+
118
+ ```
119
+ "Generate a digest from the last 14 days"
120
+ "Not many articles this week, extend the window to 2 weeks"
121
+ ```
122
+
123
+ Publish to Ghost:
124
+
125
+ ```
126
+ "Generate this week's digest and publish it to Ghost as a draft"
127
+ "Create the newsletter and publish it to Ghost"
128
+ ```
129
+
130
+ Output for Substack:
131
+
132
+ ```
133
+ "Generate a newsletter digest for Substack"
134
+ "Create the digest and give me the Markdown version"
135
+ ```
136
+
137
+ ## Output
138
+
139
+ | Output | Description |
140
+ |--------|-------------|
141
+ | HTML | Ready to paste into any CMS |
142
+ | Markdown | For Substack, Notion, Hashnode |
143
+ | Plain text | For email clients |
144
+ | Ghost draft | Published automatically if configured |
145
+
146
+ ## Substack Note
147
+
148
+ Substack has no public API. The skill outputs a Markdown version of the digest for you to paste directly into the Substack editor.
149
+
150
+ ## Project Structure
151
+
152
+ ```
153
+ newsletter-digest/
154
+ ├── SKILL.md
155
+ ├── README.md
156
+ ├── .env.example
157
+ ├── package.json
158
+ ├── feeds.json (your RSS feed list, edit this)
159
+ ├── evals/
160
+ │ └── evals.json
161
+ ├── references/
162
+ │ ├── digest-format.md (format rules, length targets, attribution)
163
+ │ └── output-template.md (HTML templates for all 3 formats)
164
+ └── scripts/
165
+ ├── fetch-feeds.js (RSS fetching, dedup, date filtering)
166
+ └── ghost-publish.js (Ghost Admin API posting)
167
+ ```
168
+
169
+ ## License
170
+
171
+ MIT
@@ -79,24 +79,3 @@ Unlike simple text generators, this skill operates as a structured workflow:
79
79
  ## Contributing
80
80
 
81
81
  Pull requests to refine hook patterns, add new slide structures, or include helper scripts that refine raw transcripts are welcome.
82
-
83
-
84
- ## Install
85
-
86
- ### Video Tutorial
87
- Watch this quick video to see how it's done:
88
-
89
- https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
90
-
91
- ### Step 1: Download the skill from GitHub
92
- 1. Copy the URL of this specific skill folder from your browser's address bar.
93
- 2. Go to [download-directory.github.io](https://download-directory.github.io/).
94
- 3. Paste the URL and click **Enter** to download.
95
-
96
- ### Step 2: Install the Skill in Claude
97
- 1. Open your **Claude desktop app**.
98
- 2. Go to the sidebar on the left side and click on the **Customize** section.
99
- 3. Click on the **Skills** tab, then click on the **+** (plus) icon button to create a new skill.
100
- 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).
101
-
102
- > **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 noise2blog --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/cea8b565-2002-4a87-8857-d902bfcfdc1c
17
+ https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
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,3 +28,104 @@ 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
+ - Accepts any rough input: bullet points, rough notes, voice transcripts, tweet dumps, short drafts, or a URL
35
+ - Detects the right blog post style automatically (Technical Tutorial, Case Study, Thought Leadership, Explainer)
36
+ - Enriches claims with Tavily research when you set an API key (supporting data, verification)
37
+ - Generates a Markdown post with no AI slop, no em dashes, no banned words
38
+ - Formats frontmatter for Ghost, dev.to, Substack, or Hashnode on request
39
+
40
+ ## Requirements
41
+
42
+ | Requirement | Purpose | How to Set Up |
43
+ |------------|---------|--------------|
44
+ | Google Gemini API key | Generates the blog post | aistudio.google.com, Get API key |
45
+ | Tavily API key (optional) | Enriches claims with research | app.tavily.com, API Keys |
46
+
47
+ No LLM backend to run. The agent calls the Gemini API directly.
48
+
49
+ ## Setup
50
+
51
+ ```bash
52
+ cp .env.example .env
53
+ ```
54
+
55
+ Edit `.env` and fill in:
56
+ - `GEMINI_API_KEY` (required)
57
+ - `TAVILY_API_KEY` (optional, enables research enrichment)
58
+
59
+ ## Blog Post Styles
60
+
61
+ | Style | Use When | Signals in Your Input |
62
+ |-------|----------|----------------------|
63
+ | Technical Tutorial | Step-by-step guide, code walkthrough | Numbered steps, commands, "how to" |
64
+ | Case Study | Build log, before/after story, lessons learned | Specific results, journey narrative |
65
+ | Thought Leadership | Opinion piece, counterintuitive argument | Strong claim, debate framing |
66
+ | Explainer | Explaining a concept or tool to newcomers | Definition-first, comparisons |
67
+
68
+ The agent detects the style automatically. Override it with: "Use Thought Leadership style" or "Make this a tutorial".
69
+
70
+ ## How to Use
71
+
72
+ From pasted notes:
73
+
74
+ ```
75
+ "Write a blog post from these notes: [paste your content]"
76
+ "Turn these bullet points into a blog post"
77
+ "Expand this into an article"
78
+ ```
79
+
80
+ From a voice transcript:
81
+
82
+ ```
83
+ "Turn this transcript into a blog post: [paste transcript]"
84
+ "Clean up this voice note and make it publishable"
85
+ ```
86
+
87
+ From a tweet thread:
88
+
89
+ ```
90
+ "Turn this tweet thread into a blog: [paste tweets]"
91
+ "Expand this thread into a full article"
92
+ ```
93
+
94
+ With style override:
95
+
96
+ ```
97
+ "Write a thought leadership post from these notes"
98
+ "Make this a technical tutorial"
99
+ ```
100
+
101
+ With platform formatting:
102
+
103
+ ```
104
+ "Write the post and format it for dev.to"
105
+ "Give me Ghost frontmatter too"
106
+ ```
107
+
108
+ ## Output
109
+
110
+ - Full blog post in Markdown (800-1,800 words)
111
+ - Meta description (1-2 sentences)
112
+ - Alternative title option
113
+ - Platform-specific frontmatter on request
114
+
115
+ ## Project Structure
116
+
117
+ ```
118
+ noise2blog/
119
+ ├── SKILL.md
120
+ ├── README.md
121
+ ├── .env.example
122
+ ├── evals/
123
+ │ └── evals.json
124
+ └── references/
125
+ ├── blog-format.md
126
+ └── output-template.md
127
+ ```
128
+
129
+ ## License
130
+
131
+ MIT
@@ -9,19 +9,138 @@ npx "@opendirectory.dev/skills" install npm-downloads-to-leads --target claude
9
9
  ```
10
10
 
11
11
  ### Video Tutorial
12
- Watch this quick video to see how it's done:
13
12
 
14
- https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
13
+ https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
15
14
 
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.
15
+ ### Step 1: Download from GitHub
16
+ 1. Click the **Code** button on this repo's GitHub page.
17
+ 2. Select **Download ZIP**.
18
+ 3. Extract the ZIP on your computer.
20
19
 
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).
20
+ ### Step 2: Install in Claude
21
+ 1. Open the **Claude desktop app**.
22
+ 2. Go to **Customize** in the sidebar.
23
+ 3. Click the **Skills** tab, then the **+** button.
24
+ 4. Choose **Upload a skill** and drop the folder or ZIP file.
26
25
 
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!
26
+ Note: Upload the folder that contains the `SKILL.md` file.
27
+
28
+ ## What It Does
29
+
30
+ - Fetches 12 weeks of daily download data per package from the npm Downloads API
31
+ - Aggregates to weekly buckets and computes a velocity score: recent growth x acceleration x sweet-spot multiplier
32
+ - Classifies each package as BREAKOUT, WATCHING, steady, established, or too early
33
+ - Fetches maintainer profiles from the npm registry and GitHub API
34
+ - Extracts GitHub followers, Twitter handle, bio, and company from each maintainer's GitHub profile
35
+ - Generates a lead brief per breakout package: growth story, contact signals, why to reach out now, and a suggested first message
36
+ - Saves output to `docs/npm-leads/[date].md`
37
+
38
+ ## Requirements
39
+
40
+ | Requirement | Purpose | How to Set Up |
41
+ |---|---|---|
42
+ | GitHub token | Raises rate limit from 60/hr to 5000/hr for maintainer profile lookups | github.com/settings/tokens (no scopes needed for public user profiles) |
43
+
44
+ No external AI API key needed. The npm and npm registry APIs are fully public with no auth. GitHub token is optional but recommended for lists larger than 10 packages.
45
+
46
+ ## Setup
47
+
48
+ ```bash
49
+ cp .env.example .env
50
+ # Add GITHUB_TOKEN (optional, recommended for larger package lists)
51
+ ```
52
+
53
+ ## How to Use
54
+
55
+ ```
56
+ "Find leads from these npm packages: esbuild, vite, @hono/hono, zod"
57
+ "Track download trends for competitor packages: turbo, nx, lerna"
58
+ "Who maintains these breakout npm packages? bun, oxc-parser, biome"
59
+ "Find evangelists before they are famous: @effect-ts/core, fp-ts, zod"
60
+ "Analyze npm momentum for my space: my-package, competitor-a, competitor-b"
61
+ "Map npm maintainers to Twitter for these packages: ..."
62
+ ```
63
+
64
+ Include a short description of your product and the skill will tailor the outreach message to your context.
65
+
66
+ ## Why Velocity Score, Not Raw Downloads
67
+
68
+ React gets 50 million downloads a week. Its maintainers are already famous, already inundated with outreach, and already aligned with a framework you are likely building on.
69
+
70
+ The velocity score finds the package going from 1K to 8K weekly downloads over 8 weeks. That maintainer just crossed a growth inflection. They are building an audience, they are not yet overwhelmed, and they are in a phase where your product makes a difference to their workflow.
71
+
72
+ The formula: `velocity_score = growth_ratio x acceleration x sweet_spot_multiplier`
73
+
74
+ - `growth_ratio`: recent 4-week average divided by prior 4-week average
75
+ - `acceleration`: last 2 weeks vs mid 2 weeks (is growth speeding up?)
76
+ - `sweet_spot_multiplier`: 1.0 for 500 to 500K weekly downloads, lower for noise floor or established giants
77
+
78
+ Breakout threshold: velocity score above 80 AND 500 to 500K weekly downloads.
79
+
80
+ ## The Lead Brief
81
+
82
+ For each breakout and watching package:
83
+
84
+ - **Growth story**: exact download numbers, 8-week comparison, weekly trend
85
+ - **Maintainer profile**: GitHub handle, Twitter, bio, company, follower count
86
+ - **Why reach out now**: specific to this package's growth inflection point
87
+ - **Suggested first message**: names the package, its growth, and connects to your product context
88
+
89
+ ## Cost Per Run
90
+
91
+ - npm Downloads API: free, no auth, no rate limit concerns
92
+ - npm Registry API: free, no auth
93
+ - GitHub API: free (60 req/hr unauthenticated, 5000/hr with token)
94
+ - AI analysis: uses the model already running the skill; no additional cost
95
+ - Total: free
96
+
97
+ ## Standalone Script
98
+
99
+ Run the data fetching step directly from the terminal without Claude. Useful for scheduled jobs, CI pipelines, or exploring data before generating lead briefs.
100
+
101
+ ```bash
102
+ # Basic usage
103
+ python3 scripts/fetch.py esbuild zod @hono/hono
104
+
105
+ # With product context
106
+ python3 scripts/fetch.py esbuild zod --context "We build a TypeScript DX platform"
107
+
108
+ # From a file (one package per line)
109
+ python3 scripts/fetch.py --file packages.txt --output results.json
110
+
111
+ # Print to stdout
112
+ python3 scripts/fetch.py esbuild zod --stdout | jq '.summary'
113
+ ```
114
+
115
+ The script handles Steps 3 to 5 (download fetch, velocity scoring, maintainer enrichment) and writes a JSON file. Open that file with Claude and ask: "Generate lead briefs from this npm data."
116
+
117
+ ```bash
118
+ GITHUB_TOKEN=your_token python3 scripts/fetch.py esbuild zod @hono/hono
119
+ ```
120
+
121
+ Script output fields per package:
122
+
123
+ - `velocity_score`, `growth_pct`, `recent_4_avg`, `prior_4_avg`, `tier`
124
+ - `weeks`: array of 12 weekly download counts, oldest to newest
125
+ - `profile.description`, `profile.keywords`, `profile.npm_maintainers`
126
+ - `profile.github_users`: array with `username`, `twitter_username`, `followers`, `bio`, `company`
127
+
128
+ ## Project Structure
129
+
130
+ ```
131
+ npm-downloads-to-leads/
132
+ ├── SKILL.md
133
+ ├── README.md
134
+ ├── .env.example
135
+ ├── scripts/
136
+ │ └── fetch.py standalone data fetcher (Steps 3 to 5, no Claude needed)
137
+ ├── evals/
138
+ │ └── evals.json
139
+ └── references/
140
+ ├── velocity-scoring.md
141
+ └── outreach-timing.md
142
+ ```
143
+
144
+ ## License
145
+
146
+ MIT
@@ -25,24 +25,3 @@ Unlike single-channel generators, `oss-launch-kit` acts as the **Root Strategy L
25
25
  1. It tells you **if and where** you should launch.
26
26
  2. It provides a **timed checklist** for coordination.
27
27
  3. It hands off to **specialized skills** for channel-specific drafting.
28
-
29
-
30
- ## Install
31
-
32
- ### Video Tutorial
33
- Watch this quick video to see how it's done:
34
-
35
- https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
36
-
37
- ### Step 1: Download the skill from GitHub
38
- 1. Copy the URL of this specific skill folder from your browser's address bar.
39
- 2. Go to [download-directory.github.io](https://download-directory.github.io/).
40
- 3. Paste the URL and click **Enter** to download.
41
-
42
- ### Step 2: Install the Skill in Claude
43
- 1. Open your **Claude desktop app**.
44
- 2. Go to the sidebar on the left side and click on the **Customize** section.
45
- 3. Click on the **Skills** tab, then click on the **+** (plus) icon button to create a new skill.
46
- 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).
47
-
48
- > **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 outreach-sequence-builder --target claud
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/cea8b565-2002-4a87-8857-d902bfcfdc1c
17
+ https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
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,3 +28,105 @@ 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
+ - Identifies the signal type from 7 categories: Post-Fundraise, Hiring Signal, Competitor Displacement, Product Launch, Content Engagement, Event Follow-up, Job Change
35
+ - Loads your ICP from docs/icp.md or asks 4 questions to define target persona and pain points
36
+ - Develops the Insight, Bridge, Opener, and Ask for the specific signal
37
+ - Plans a 4-6 touchpoint channel sequence over 10-14 days
38
+ - Generates all messages with Gemini, enforcing hard limits (100-word emails, 300-character LinkedIn notes, 20-word phone openers)
39
+ - Pre-empts 2-4 objections woven into existing touchpoints
40
+ - Runs a 13-point QA pass before presenting the sequence
41
+ - Saves the sequence to docs/sequences/ and optionally drafts emails in Gmail via Composio
42
+
43
+ ## Requirements
44
+
45
+ | Requirement | Purpose | How to Set Up |
46
+ |------------|---------|--------------|
47
+ | Gemini API key | Sequence generation | aistudio.google.com, Get API key |
48
+ | Composio API key (optional) | Gmail draft creation | app.composio.dev, API Keys |
49
+
50
+ ## Setup
51
+
52
+ ```bash
53
+ cp .env.example .env
54
+ ```
55
+
56
+ Fill in:
57
+ - `GEMINI_API_KEY` (required)
58
+ - `COMPOSIO_API_KEY` (optional, for Gmail draft creation)
59
+
60
+ Optional: create `docs/icp.md` with your target personas, company profile, pain points, and differentiators. If the file does not exist, the skill asks 4 questions before generating.
61
+
62
+ ## How to Use
63
+
64
+ Basic sequence from a signal:
65
+
66
+ ```
67
+ "Build an outreach sequence for a prospect who just raised a Series B"
68
+ "They're hiring 8 engineers — write me a sequence"
69
+ "Create outreach based on this signal: they just launched a new product"
70
+ ```
71
+
72
+ With contact context:
73
+
74
+ ```
75
+ "Build an outreach sequence for Sarah Chen, VP Sales at Momentum CRM — they just raised $22M Series B"
76
+ "They switched from Salesforce and posted a frustrated LinkedIn comment. Write a competitor displacement sequence."
77
+ ```
78
+
79
+ With Gmail drafting:
80
+
81
+ ```
82
+ "Build a post-fundraise sequence and draft the emails in Gmail"
83
+ ```
84
+
85
+ ## Signal Types
86
+
87
+ | Signal | Definition | Window |
88
+ |--------|-----------|--------|
89
+ | Post-Fundraise | Company raised a round in the last 30 days | 48 hours from announcement |
90
+ | Hiring Signal | Company posted 5 or more roles in a function you serve | Within the week posts appear |
91
+ | Competitor Displacement | Contact is using a competitor and showing frustration | Within 24 hours |
92
+ | Product Launch | Company launched a new product or major feature | 2-4 weeks after launch |
93
+ | Content Engagement | Contact liked, commented, or shared your content | Start on LinkedIn first |
94
+ | Event Follow-up | You met at a conference or webinar | Within 48 hours of event |
95
+ | Job Change | Contact moved to a new company in the last 60 days | Within 2 weeks of announcement |
96
+
97
+ ## Message Rules
98
+
99
+ - Only `{{first_name}}` is allowed as a variable. All other details must be filled in from context.
100
+ - Email bodies: 100 words maximum.
101
+ - LinkedIn notes: 300 characters maximum.
102
+ - Phone openers: 20 words maximum.
103
+ - No placeholders like `[Company Name]` or `[INSERT PAIN POINT]`. If the information is not available, the skill asks before writing.
104
+
105
+ ## Output
106
+
107
+ The sequence is saved to `docs/sequences/{signal-type}.md`. Each touchpoint includes:
108
+
109
+ - Channel and day number
110
+ - Two subject line variants (email)
111
+ - Message body
112
+ - Word count (email) or character count (LinkedIn)
113
+ - Phone talk track with voicemail script
114
+
115
+ ## Project Structure
116
+
117
+ ```
118
+ outreach-sequence-builder/
119
+ ├── SKILL.md
120
+ ├── README.md
121
+ ├── .env.example
122
+ ├── evals/
123
+ │ └── evals.json
124
+ └── references/
125
+ ├── signal-playbook.md
126
+ ├── sequence-format.md
127
+ └── output-template.md
128
+ ```
129
+
130
+ ## License
131
+
132
+ MIT
@@ -15,7 +15,7 @@ npx "@opendirectory.dev/skills" install position-me --target claude
15
15
  ### Video Tutorial
16
16
  Watch this quick video to see how it's done:
17
17
 
18
- https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
18
+ https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
19
19
 
20
20
  ### Step 1: Download the skill from GitHub
21
21
  1. Copy the URL of this specific skill folder from your browser's address bar.
@@ -29,3 +29,67 @@ https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
29
29
  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).
30
30
 
31
31
  > **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!
32
+
33
+ ## Core Capabilities
34
+
35
+ When invoked, the skill commands the AI agent to conduct an exhaustive teardown of the target website through a rigid protocol:
36
+
37
+ * Autonomous Navigation: Crawl the homepage, about, pricing, and blog pages.
38
+ * Visual Psychology: Take full page screenshots and analyze visual friction, layout flow, and cognitive load using the LIFT model.
39
+ * Copywriting Critique: Rewrite generic text using the PAS (Problem, Agitation, Solution) framework.
40
+ * Deep Content Audits: Read actual blog posts to identify fluff, grade technical depth, and offer new content strategies.
41
+ * Technical Readiness: Verify the presence of llms.txt, sitemap.xml, and semantic JSON-LD Schema (FAQPage, SoftwareApplication, etc) for generative search optimization.
42
+
43
+ ## Requirements
44
+
45
+ The host AI agent must have access to:
46
+ 1. A multimodal LLM capable of analyzing screenshots natively.
47
+ 2. Chrome DevTools MCP Server (https://github.com/ChromeDevTools/chrome-devtools-mcp).
48
+ 3. Chrome CDP Skill (https://github.com/pasky/chrome-cdp-skill).
49
+ 4. Terminal access to run fallback Python scripts if browser automation fails.
50
+
51
+ To set up the required Chrome automation:
52
+ * Install and configure the Chrome DevTools MCP server in the agent MCP settings.
53
+ * Add the Chrome CDP skill to the agent skills directory.
54
+ * Ensure Chrome is running with remote debugging enabled (e.g., `chrome --remote-debugging-port=9222`).
55
+
56
+ ## Installation Instructions
57
+
58
+ ### For Developers (Manual Setup)
59
+
60
+ 1. Clone or download the `position-me` repository.
61
+ 2. Copy the `position-me/` directory into the agent designated skills directory.
62
+ 3. Alternatively, extract the raw `SKILL.md` and `references/` folder into the agent custom prompt configuration.
63
+
64
+ ### For AI Agents (Automated Setup)
65
+
66
+ 1. Clone or download the `position-me` repository into the active project workspace.
67
+ 2. Read directly from the `position-me/` source folder.
68
+ 3. Add the `SKILL.md` file to the active context window or skill registry.
69
+ 4. Verify access to the `references/EVALUATION_SOP.md` and `references/REPORT_TEMPLATE.md` files.
70
+
71
+ ## Execution Protocol for Agents
72
+
73
+ Once loaded, the AI agent must strictly follow this execution loop:
74
+
75
+ 1. Data Gathering: Prompt the user for the target URL.
76
+ 2. Connect to Browser: Use the Chrome DevTools MCP combined with the Chrome CDP skill.
77
+ 3. Multi-Page Crawl: Navigate to the homepage, pricing page, about page, and at least one blog post.
78
+ 4. Capture Vision Context: Take screenshots of every visited page and load them into memory.
79
+ 5. Extract DOM Context: Pull the accessibility tree, search for `llms.txt`, and verify JSON-LD schemas.
80
+ 6. Analyze: Apply the frameworks specified in `references/EVALUATION_SOP.md`.
81
+ 7. Report: Generate a scored, highly structured teardown using exactly the format in `references/REPORT_TEMPLATE.md`.
82
+
83
+ ## Project Structure
84
+
85
+ ```text
86
+ position-me/
87
+ ├── README.md # Documentation
88
+ └── position-me/ # Raw skill source code
89
+ ├── SKILL.md # Master protocol
90
+ ├── scripts/
91
+ │ └── extract_links.py # Fallback crawler script
92
+ └── references/
93
+ ├── EVALUATION_SOP.md # Evaluation frameworks
94
+ └── REPORT_TEMPLATE.md # Teardown report template
95
+ ```