@opendirectory.dev/skills 0.1.71 → 0.1.73

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/README.md ADDED
@@ -0,0 +1,19 @@
1
+ # @opendirectory.dev/skills
2
+
3
+ The official CLI for installing and managing OpenDirectory skills for AI agents (Claude, Cursor, etc.).
4
+
5
+ ## Installation & Usage
6
+
7
+ You don't need to install this package globally. You can run it directly using `npx`:
8
+
9
+ ```bash
10
+ npx "@opendirectory.dev/skills" install <skill-name> --target claude
11
+ ```
12
+
13
+ ## Available Skills
14
+
15
+ For the full list of available skills, detailed documentation, and contribution guidelines, please visit the [OpenDirectory GitHub Repository](https://github.com/Varnan-Tech/opendirectory).
16
+
17
+ ## License
18
+
19
+ MIT
package/package.json CHANGED
@@ -1,8 +1,13 @@
1
1
  {
2
2
  "name": "@opendirectory.dev/skills",
3
- "version": "0.1.71",
3
+ "version": "0.1.73",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
+ "files": [
7
+ "dist",
8
+ "skills",
9
+ "registry.json"
10
+ ],
6
11
  "bin": {
7
12
  "opendirectory": "dist/index.js"
8
13
  },
package/registry.json CHANGED
@@ -73,6 +73,14 @@
73
73
  "version": "1.0.0",
74
74
  "path": "skills/docs-from-code"
75
75
  },
76
+ {
77
+ "name": "domain-expired-opportunity-finder",
78
+ "description": "Evaluates expired domain candidates against a target niche, scores them by topical relevance, historical activity level, and history cleanliness, t...",
79
+ "tags": [],
80
+ "author": "ajaycodesitbetter",
81
+ "version": "1.0.0",
82
+ "path": "skills/domain-expired-opportunity-finder"
83
+ },
76
84
  {
77
85
  "name": "email-newsletter",
78
86
  "description": "Drafts and designs a complete HTML email newsletter from a topic or content brief.",
@@ -0,0 +1,21 @@
1
+ # domain-expired-opportunity-finder — Environment Variables
2
+ #
3
+ # OPTIONAL: LLM API key for enhanced niche-relevance scoring.
4
+ # Without this, the skill uses rule-based scoring only (still functional).
5
+ # The skill's LLM integration is designed for the Gemini API (generateContent format).
6
+ # It is NOT drop-in compatible with OpenAI-style endpoints without modifying
7
+ # the request body and response parsing in SKILL.md Step 4e.
8
+ #
9
+ # Default configuration uses Gemini API (free tier at aistudio.google.com):
10
+ LLM_API_KEY=your_api_key_here
11
+ LLM_API_ENDPOINT=https://generativelanguage.googleapis.com/v1beta
12
+ LLM_MODEL=gemini-2.0-flash
13
+ #
14
+ # To use a different provider, you must update the endpoint, model, AND
15
+ # adapt the request/response format in SKILL.md Step 4e:
16
+ # LLM_API_ENDPOINT=https://api.openai.com/v1
17
+ # LLM_MODEL=gpt-4o-mini
18
+ #
19
+ # Note: The skill works without any LLM key. Rule-based scoring uses
20
+ # domain string analysis and Wayback CDX data for niche-relevance
21
+ # assessment. LLM scoring adds deeper contextual analysis.
@@ -0,0 +1,198 @@
1
+ # domain-expired-opportunity-finder
2
+
3
+ Evaluate expired domain candidates against your niche. Get a conservative,
4
+ explainable shortlist with risk flags — not another noisy domain list.
5
+
6
+ ## Installation
7
+
8
+ ```bash
9
+ npx "@opendirectory.dev/skills" install domain-expired-opportunity-finder --target claude
10
+ ```
11
+
12
+ ### Installation in Claude Desktop App
13
+
14
+ #### Video Tutorial
15
+ Watch this quick video to see how it's done:
16
+
17
+ https://github.com/user-attachments/assets/ee98a1b5-ebc4-452f-bbfb-c434f2935067
18
+
19
+ #### Step 1: Download the skill from GitHub
20
+ 1. Copy the URL of this specific skill folder from your browser's address bar.
21
+ 2. Go to [download-directory.github.io](https://download-directory.github.io/).
22
+ 3. Paste the URL and click **Enter** to download.
23
+
24
+ #### Step 2: Install the Skill in Claude
25
+ 1. Open your **Claude desktop app**.
26
+ 2. Go to the sidebar on the left side and click on the **Customize** section.
27
+ 3. Click on the **Skills** tab, then click on the **+** (plus) icon button to create a new skill.
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
+
30
+ ## What It Does
31
+
32
+ - Accepts a target niche and a set of expired domain candidates
33
+ - Collects signals from free public sources (Wayback Machine, WHOIS, domain analysis)
34
+ - Scores each candidate across 6 transparent dimensions: topical relevance, historical activity level, historical content quality, history cleanliness, redirect suitability, and signal completeness.
35
+ - This skill acts as a **Level 1 Triage** filter. It automatically pulls historical data, runs a strict 6-dimension scoring model (penalizing topic mismatches and spammy histories), and outputs a highly readable shortlist for your team.
36
+ - *Note: This tool uses public historical data (Wayback/RDAP) to infer domain legitimacy. It is designed to filter out junk before you spend paid Ahrefs/Majestic API credits on the remaining candidates.*
37
+ - Flags risks explicitly (spam content risk, topic mismatch, unclear history, possible deindex)
38
+ - Outputs a ranked shortlist where every domain has a `why_selected` AND `why_risky` explanation
39
+ - Saves structured JSON output to `docs/expired-domain-intel/YYYY-MM-DD.json`
40
+
41
+ ## What It Does NOT Do
42
+
43
+ - Does not automate domain buying, bidding, or registration
44
+ - Does not promise rankings or guarantee SEO outcomes
45
+ - Does not encourage PBN construction or deceptive redirects
46
+ - Does not replace commercial tools like Ahrefs or DomCop for bulk discovery
47
+ - Does not produce black-box scores — every recommendation is auditable
48
+
49
+ ## Requirements
50
+
51
+ | Requirement | Purpose | How to Set Up |
52
+ |---|---|---|
53
+ | Python 3.10+ | Signal collection and scoring | python.org |
54
+ | curl | API calls to Wayback Machine | Pre-installed on most systems |
55
+ | whois CLI | Domain registration checks | `apt install whois` or `brew install whois` |
56
+ | LLM API key (optional) | Enhanced niche-relevance scoring | See .env.example |
57
+
58
+ The skill works without an LLM API key. Rule-based scoring uses domain string
59
+ analysis and Wayback CDX data. Adding an LLM key enables deeper contextual
60
+ niche-relevance assessment.
61
+
62
+ ## Setup
63
+
64
+ ```bash
65
+ cp .env.example .env
66
+ ```
67
+
68
+ Fill in `LLM_API_KEY` if you want LLM-enhanced scoring (optional).
69
+
70
+ ## How to Use
71
+
72
+ Basic usage:
73
+ ```
74
+ "Find expired domain opportunities in the developer tools niche"
75
+ "Evaluate these expired domains for my cybersecurity blog"
76
+ "Triage this list of expired domains for AI SaaS redirect potential"
77
+ ```
78
+
79
+ With specific candidates:
80
+ ```
81
+ "Evaluate these expired domains for the fintech niche: paymentsdaily.com, fintechweekly.io, cheaploans247.net"
82
+ ```
83
+
84
+ With options:
85
+ ```
86
+ "Find expired domain opportunities in developer tools. Minimum 20 referring domains. Only show low-risk candidates. Focus on rebuild potential."
87
+ ```
88
+
89
+ Run with the built-in demo set:
90
+ ```
91
+ "Run the expired domain finder with the example set"
92
+ ```
93
+
94
+ ## Inputs
95
+
96
+ | Input | Type | Required | Description |
97
+ |---|---|---|---|
98
+ | `target_niche` | string | Yes | Core niche to evaluate against (e.g., "developer tools") |
99
+ | `seed_keywords` | array | No | Keywords for refined matching (e.g., ["devops", "CI/CD"]) |
100
+ | `candidate_domains` | array | No | Domains to evaluate (prompted if not provided) |
101
+ | `discovery_source` | string | No | Where candidates came from |
102
+ | `min_ref_domains` | integer | No | Minimum referring-domain threshold (default: 10) |
103
+ | `max_risk_level` | string | No | `low`, `medium`, `high` — controls filtering aggressiveness |
104
+ | `intended_use` | string | No | `rebuild`, `redirect`, or `either` (default: `either`) |
105
+
106
+ ## Output Example
107
+
108
+ ```json
109
+ {
110
+ "skill": "domain-expired-opportunity-finder",
111
+ "target_niche": "developer tools",
112
+ "shortlist": [
113
+ {
114
+ "domain": "devtoolsweekly.com",
115
+ "opportunity_score": 86,
116
+ "confidence": "high",
117
+ "recommended_action": "high-priority-review",
118
+ "redirect_suitability": "high",
119
+ "topical_fit_summary": "Domain name contains 'devtools'. Wayback snapshots confirm it was a weekly newsletter covering developer tools and IDE plugins from 2019 to 2024.",
120
+ "activity_level_summary": "High snapshot frequency across 6 consecutive years, indicating sustained active use.",
121
+ "content_quality_summary": "Historical page titles are predominantly branded ('DevTools Weekly') and natural. No keyword stuffing detected.",
122
+ "history_summary": "6 years of consistent Wayback snapshots (2019–2024). All snapshots show real content. No parking pages or sudden drop-offs.",
123
+ "risk_flags": [],
124
+ "why_selected": "Strong topical match with healthy activity level and clean 6-year history.",
125
+ "why_risky": "No significant risk signals. Standard due diligence recommended."
126
+ }
127
+ ]
128
+ }
129
+ ```
130
+
131
+ ## Scoring Overview
132
+
133
+ The skill uses a transparent weighted model (no black-box ranking):
134
+
135
+ | Dimension | Weight | Signals Analyzed |
136
+ | :--- | :--- | :--- |
137
+ | **Topical Relevance** | 30% | Keyword match, Wayback titles, LLM classification |
138
+ | **Historical Activity Level** | 25% | Snapshot frequency and long-term continuity |
139
+ | **Historical Content Quality** | 15% | Title keyword stuffing, natural phrasing |
140
+ | **History Cleanliness** | 15% | Years active, parking pages, 200 vs 404 ratio |
141
+ | **Redirect Suitability** | 10% | Niche overlap, content format consistency |
142
+ | **Signal Completeness** | 5% | Availability of Wayback and RDAP data |
143
+
144
+ Full scoring details: `references/scoring-model.md`
145
+
146
+ ## Risk Flags
147
+
148
+ | Flag | Severity | Effect |
149
+ | :--- | :--- | :--- |
150
+ | `topic_mismatch` | High | Caps score. Domain is in a completely unrelated niche. |
151
+ | `spam_content_risk` | High | Caps score. Heavy exact-match money keywords in titles. |
152
+ | `possible_deindex` | High | Caps score. Sudden drop-off in Wayback captures. |
153
+ | `redirect_mismatch` | High | Caps redirect suitability. Not safe for 301. |
154
+ | `unclear_history` | Medium | Reduces score. <3 Wayback captures or mostly parking pages. |
155
+ | `short_history` | Medium | Reduces score. Domain active < 1 year before expiry. |
156
+ | `weak_historical_activity` | Medium | Reduces score. Snapshots below threshold. |
157
+ | `suspicious_registrar` | Medium | Known spam-associated registrar |
158
+
159
+ Full flag definitions: `references/risk-flags.md`
160
+
161
+ ## Recommendation Labels
162
+
163
+ | Label | Meaning |
164
+ |---|---|
165
+ | `high-priority-review` | Strong match, low risk — review first |
166
+ | `review` | Worth investigating, mixed or incomplete evidence |
167
+ | `rebuild-only-review` | Good for rebuild, not suitable for redirect |
168
+ | `reject` | Does not meet quality or relevance threshold |
169
+
170
+ ## Guardrails
171
+
172
+ This skill is a research and triage tool. It:
173
+ - Frames all results as recommendations, not guarantees
174
+ - Requires topic continuity for redirect recommendations
175
+ - Flags manipulative patterns instead of optimizing for them
176
+ - Includes a disclaimer on every output
177
+
178
+ Full guardrails policy: `references/guardrails.md`
179
+
180
+ ## Project Structure
181
+
182
+ ```
183
+ domain-expired-opportunity-finder/
184
+ ├── SKILL.md # Agent workflow instructions
185
+ ├── README.md # This file
186
+ ├── .env.example # API key template (optional)
187
+ ├── evals/
188
+ │ └── evals.json # 5 test scenarios
189
+ └── references/
190
+ ├── scoring-model.md # Transparent scoring dimensions
191
+ ├── output-format.md # JSON output schema
192
+ ├── risk-flags.md # Risk flag definitions
193
+ └── guardrails.md # Anti-abuse policy
194
+ ```
195
+
196
+ ## License
197
+
198
+ MIT