opencode-skills-collection 4.0.64 → 4.0.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.
- package/bundled-skills/.antigravity-install-manifest.json +3 -1
- package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +1 -1
- package/bundled-skills/seo-aeo-blog-writer/SKILL.md +140 -59
- package/bundled-skills/seo-aeo-content-cluster/SKILL.md +180 -61
- package/bundled-skills/seo-aeo-content-quality-auditor/SKILL.md +221 -64
- package/bundled-skills/seo-aeo-content-quality-auditor/references/seo-audit-checklist.md +63 -0
- package/bundled-skills/seo-aeo-internal-linking/SKILL.md +220 -59
- package/bundled-skills/seo-aeo-keyword-research/SKILL.md +297 -76
- package/bundled-skills/seo-aeo-landing-page-writer/SKILL.md +116 -83
- package/bundled-skills/seo-aeo-meta-description-generator/SKILL.md +316 -62
- package/bundled-skills/seo-aeo-orchestrator/SKILL.md +281 -0
- package/bundled-skills/seo-aeo-schema-generator/SKILL.md +302 -68
- package/bundled-skills/seo-aeo-schema-generator/references/aggregate-rating-schema.json +8 -0
- package/bundled-skills/seo-aeo-schema-generator/references/article-schema.json +10 -0
- package/bundled-skills/seo-aeo-schema-generator/references/breadcrumb-schema.json +5 -0
- package/bundled-skills/seo-aeo-schema-generator/references/faq-schema.json +5 -0
- package/bundled-skills/seo-aeo-schema-generator/references/howto-schema.json +7 -0
- package/bundled-skills/seo-aeo-schema-generator/references/organization-schema.json +7 -0
- package/bundled-skills/seo-aeo-schema-generator/references/product-schema.json +8 -0
- package/bundled-skills/seo-aeo-schema-generator/references/review-schema.json +8 -0
- package/bundled-skills/seo-aeo-schema-generator/references/webpage-schema.json +7 -0
- package/bundled-skills/seo-aeo-schema-generator/references/website-schema.json +7 -0
- package/bundled-skills/youtube-transcript-skills/SKILL.md +110 -0
- package/package.json +1 -1
- package/skills_index.json +125 -8
|
@@ -1,90 +1,251 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: seo-aeo-internal-linking
|
|
3
|
-
description: "Maps internal link opportunities between pages with anchor text, placement instructions, orphan
|
|
3
|
+
description: "Maps internal link opportunities between pages with relevant anchor text, placement instructions, orphan-page detection, and cannibalisation checks."
|
|
4
4
|
risk: safe
|
|
5
5
|
source: community
|
|
6
6
|
date_added: "2026-04-01"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
#
|
|
9
|
+
# Internal Linking Skill
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## Description
|
|
12
|
+
Activate this skill when the user wants to build, audit, or optimise
|
|
13
|
+
the internal link structure across a set of pages or a full site.
|
|
14
|
+
Trigger phrases include: "internal linking strategy", "find internal
|
|
15
|
+
link opportunities", "link these pages together", "internal link map",
|
|
16
|
+
"suggest anchor text", "fix orphan pages", "internal links for
|
|
17
|
+
[page or topic]", "link equity distribution".
|
|
12
18
|
|
|
13
|
-
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Input Format
|
|
22
|
+
```json
|
|
23
|
+
{
|
|
24
|
+
"pages": [
|
|
25
|
+
{
|
|
26
|
+
"title": "string — page or post title",
|
|
27
|
+
"url": "string — URL if published, leave blank if not yet live",
|
|
28
|
+
"primary_keyword": "string — the keyword this page targets",
|
|
29
|
+
"page_type": "pillar | cluster-article | landing-page |
|
|
30
|
+
blog-post | product-page",
|
|
31
|
+
"content_summary": "string — 1-2 sentences describing the page"
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"focus_page": "string — title of the page you most want to
|
|
35
|
+
boost with incoming links",
|
|
36
|
+
"cluster_context": "string — optional, paste content cluster
|
|
37
|
+
output to inform link map",
|
|
38
|
+
"product_pages": ["string — product, signup, pricing, or demo pages that should receive relevant CTAs"],
|
|
39
|
+
"audit_findings": "string — optional orphan, cannibalization, or priority findings"
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
For a foundational content system, ensure every article has a contextual path to a relevant product, signup, pricing, demo, or next-step page. Do not add the same CTA or exact-match anchor mechanically to every article; match the destination to the reader’s intent.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Link Type Definitions
|
|
48
|
+
|
|
49
|
+
This skill recognises four distinct link types.
|
|
50
|
+
Every suggestion must be labelled with one:
|
|
51
|
+
|
|
52
|
+
| Link Type | Direction | SEO Purpose |
|
|
53
|
+
|-------------------------|------------------------------------|---------------------------------------------|
|
|
54
|
+
| Pillar → Cluster | Pillar page links to cluster post | Distributes authority downward |
|
|
55
|
+
| Cluster → Pillar | Cluster post links back to pillar | Consolidates authority upward — highest priority |
|
|
56
|
+
| Cluster → Cluster | Cluster post links to related post | Builds semantic depth across the topic |
|
|
57
|
+
| Contextual Boost | Any page → focus page | Concentrates link equity on target page |
|
|
58
|
+
|
|
59
|
+
**Rule:** Every cluster article must have at least one
|
|
60
|
+
Cluster → Pillar link. No exceptions.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Anchor Text Rules
|
|
65
|
+
|
|
66
|
+
Anchor text is critical. Follow these rules on every suggestion:
|
|
67
|
+
|
|
68
|
+
| Rule | Limit |
|
|
69
|
+
|------------------------------------------|------------------------------------|
|
|
70
|
+
| Exact match anchor (keyword as-is) | Max 1 per target page across site |
|
|
71
|
+
| Partial match anchor (keyword + words) | Max 2 per target page across site |
|
|
72
|
+
| Branded anchor (site or product name) | Unlimited |
|
|
73
|
+
| Generic anchor ("click here", "read more")| Never use — flag as error |
|
|
74
|
+
| Naked URL as anchor | Avoid unless no alternative |
|
|
75
|
+
|
|
76
|
+
If the skill detects the same exact-match anchor being used
|
|
77
|
+
more than once for the same target page, flag it as a
|
|
78
|
+
**Cannibalization Risk** in the output.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Output Structure
|
|
83
|
+
|
|
84
|
+
The skill must always produce output in this exact format:
|
|
85
|
+
```markdown
|
|
86
|
+
# Internal Linking Report
|
|
87
|
+
|
|
88
|
+
## Summary
|
|
89
|
+
|
|
90
|
+
| Metric | Value |
|
|
91
|
+
|---------------------------------|------------|
|
|
92
|
+
| Total Pages Analysed | [n] |
|
|
93
|
+
| Total Link Opportunities Found | [n] |
|
|
94
|
+
| Orphan Pages Detected | [n] |
|
|
95
|
+
| Cannibalization Risks | [n] |
|
|
96
|
+
| Focus Page Incoming Links | [n] |
|
|
97
|
+
| Pages Exceeding Link Limit | [n] |
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Orphan Page Alert
|
|
102
|
+
|
|
103
|
+
Pages with no incoming internal links — these are invisible
|
|
104
|
+
to search engines and must be linked immediately:
|
|
105
|
+
|
|
106
|
+
| Page Title | URL | Fix |
|
|
107
|
+
|-----------------------------|----------------------|----------------------------------|
|
|
108
|
+
| [title] | [url or "unpublished"]| Link from [suggested source page]|
|
|
109
|
+
|
|
110
|
+
---
|
|
14
111
|
|
|
15
|
-
|
|
112
|
+
## Link Opportunities
|
|
16
113
|
|
|
17
|
-
|
|
114
|
+
Listed in priority order — highest impact first.
|
|
18
115
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
### 🔴 High Priority — Do These First
|
|
119
|
+
|
|
120
|
+
**Link [n]**
|
|
121
|
+
| Field | Value |
|
|
122
|
+
|--------------------|---------------------------------------------------|
|
|
123
|
+
| Link Type | [Cluster → Pillar / Pillar → Cluster / etc] |
|
|
124
|
+
| Source Page | [title] |
|
|
125
|
+
| Target Page | [title] |
|
|
126
|
+
| Anchor Text | [suggested anchor text] |
|
|
127
|
+
| Anchor Type | Partial match / Exact match / Branded |
|
|
128
|
+
| Placement | [Where in the source page — intro / body / CTA] |
|
|
129
|
+
| Context Sentence | "[Write the sentence the anchor should appear in, |
|
|
130
|
+
| | with anchor text in brackets like [this]]" |
|
|
131
|
+
| Impact | [Why this link matters for SEO or AEO] |
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
**Link [n]**
|
|
136
|
+
[same format]
|
|
137
|
+
|
|
138
|
+
---
|
|
23
139
|
|
|
24
|
-
|
|
140
|
+
### 🟡 Medium Priority — Do These Second
|
|
25
141
|
|
|
26
|
-
|
|
27
|
-
|
|
142
|
+
**Link [n]**
|
|
143
|
+
[same format]
|
|
28
144
|
|
|
29
|
-
|
|
30
|
-
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
### 🟢 Low Priority — Polish Round
|
|
31
148
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
- **Cluster → Pillar** — highest priority, consolidates authority upward
|
|
35
|
-
- **Pillar → Cluster** — distributes authority downward
|
|
36
|
-
- **Cluster → Cluster** — builds semantic depth
|
|
37
|
-
- **Contextual Boost** — concentrates equity on a focus page
|
|
149
|
+
**Link [n]**
|
|
150
|
+
[same format]
|
|
38
151
|
|
|
39
|
-
|
|
40
|
-
For every link opportunity, write the sentence the anchor text should appear in — naturally placed, not forced.
|
|
152
|
+
---
|
|
41
153
|
|
|
42
|
-
|
|
43
|
-
Flag any exact-match anchor used more than once for the same target page as a cannibalization risk. Never use generic anchors like "click here".
|
|
154
|
+
## Cannibalization Risks
|
|
44
155
|
|
|
45
|
-
|
|
156
|
+
Anchor text conflicts that could confuse search engines:
|
|
46
157
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
Source: "How to Build a Budget That Actually Works"
|
|
51
|
-
Target: "The Complete Guide to Automated Budgeting"
|
|
52
|
-
Anchor: "automated budgeting guide"
|
|
53
|
-
Context: "For a full breakdown of every method available,
|
|
54
|
-
see our [automated budgeting guide]."
|
|
55
|
-
Impact: Consolidates topical authority on pillar page.
|
|
56
|
-
Orphan Alert:
|
|
57
|
-
"PennyWise Pricing Page" has no incoming links.
|
|
58
|
-
Fix: Add link from comparison table in Article 2.
|
|
158
|
+
| Anchor Text Used | Used On | Points To | Fix |
|
|
159
|
+
|---------------------|----------------------|----------------------|----------------------------|
|
|
160
|
+
| [anchor] | [source page title] | [target page title] | [alternative anchor text] |
|
|
59
161
|
|
|
60
|
-
|
|
162
|
+
If none detected: ✅ No cannibalization risks found.
|
|
61
163
|
|
|
62
|
-
|
|
63
|
-
- ✅ **Do:** Write a context sentence for every suggestion — anchor text needs natural placement
|
|
64
|
-
- ✅ **Do:** Fix orphan pages before adding any new links
|
|
65
|
-
- ❌ **Don't:** Use the same exact-match anchor for the same target page more than once
|
|
66
|
-
- ❌ **Don't:** Use "click here", "read more", or "learn more" as anchor text — ever
|
|
67
|
-
- ❌ **Don't:** Add more than 100 outgoing internal links on any single page
|
|
164
|
+
---
|
|
68
165
|
|
|
69
|
-
##
|
|
166
|
+
## Link Equity Map
|
|
70
167
|
|
|
71
|
-
|
|
72
|
-
**Solution:** Add Cluster → Cluster links between semantically related articles to build depth.
|
|
168
|
+
Visual representation of how authority flows across the content:
|
|
73
169
|
|
|
74
|
-
|
|
75
|
-
|
|
170
|
+
[Focus Page / Pillar: {page title}]
|
|
171
|
+
↑ receives links from:
|
|
172
|
+
├── [Cluster Article 1] — anchor: [text]
|
|
173
|
+
├── [Cluster Article 2] — anchor: [text]
|
|
174
|
+
└── [Cluster Article 3] — anchor: [text]
|
|
76
175
|
|
|
77
|
-
|
|
176
|
+
↓ sends links to:
|
|
177
|
+
├── [Cluster Article 1] — anchor: [text]
|
|
178
|
+
└── [Cluster Article 2] — anchor: [text]
|
|
179
|
+
|
|
180
|
+
Cross-links between cluster articles:
|
|
181
|
+
[Article 1] ↔ [Article 3] — anchor: [text]
|
|
182
|
+
[Article 2] → [Article 4] — anchor: [text]
|
|
183
|
+
|
|
184
|
+
---
|
|
78
185
|
|
|
79
|
-
|
|
80
|
-
- `@seo-aeo-schema-generator` — uses link map output for BreadcrumbList schema
|
|
186
|
+
## Links Per Page Check
|
|
81
187
|
|
|
82
|
-
|
|
188
|
+
| Page Title | Incoming Links | Outgoing Links | Status |
|
|
189
|
+
|---------------------|----------------|----------------|---------------------------------|
|
|
190
|
+
| [title] | [n] | [n] | ✅ Healthy / ⚠️ Too many outgoing|
|
|
83
191
|
|
|
84
|
-
|
|
85
|
-
|
|
192
|
+
**Rule:** No page should have more than 100 outgoing internal links.
|
|
193
|
+
**Rule:** Focus page should have the highest incoming link count.
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Action Checklist
|
|
198
|
+
|
|
199
|
+
- [ ] All orphan pages have been linked
|
|
200
|
+
- [ ] Every cluster article has a Cluster → Pillar link
|
|
201
|
+
- [ ] No exact-match anchor used more than once per target
|
|
202
|
+
- [ ] No generic anchors ("click here", "read more") present
|
|
203
|
+
- [ ] Focus page has the highest incoming link count
|
|
204
|
+
- [ ] No page exceeds 100 outgoing internal links
|
|
205
|
+
- [ ] Cannibalization risks resolved
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## Execution Steps
|
|
211
|
+
|
|
212
|
+
1. Read `cluster_context` if provided — use it to understand
|
|
213
|
+
the pillar/cluster relationships before mapping any links
|
|
214
|
+
2. Index all pages by `page_type` — pillar pages should receive
|
|
215
|
+
the most incoming links by default
|
|
216
|
+
3. Run orphan detection — flag any page with zero incoming
|
|
217
|
+
links from other pages in the input set
|
|
218
|
+
4. Build semantic overlap matrix — match pages by
|
|
219
|
+
`primary_keyword` similarity and `content_summary`
|
|
220
|
+
to identify natural linking opportunities
|
|
221
|
+
5. Assign each opportunity a link type from the
|
|
222
|
+
Link Type Definitions table
|
|
223
|
+
6. Write a context sentence for every suggestion —
|
|
224
|
+
the sentence should flow naturally and make the anchor
|
|
225
|
+
text feel editorially placed, not forced
|
|
226
|
+
7. Check anchor text across all suggestions — flag any
|
|
227
|
+
exact-match anchor used more than once for the same
|
|
228
|
+
target page as a Cannibalization Risk
|
|
229
|
+
8. Sort all opportunities into High, Medium, and Low
|
|
230
|
+
priority tiers based on link type and focus page impact
|
|
231
|
+
9. Build the Link Equity Map showing authority flow
|
|
232
|
+
10. Run the Links Per Page check — flag any page
|
|
233
|
+
exceeding 100 outgoing links
|
|
234
|
+
11. Check product-page paths separately — confirm each
|
|
235
|
+
foundational article has at least one relevant conversion route
|
|
236
|
+
12. Verify the map against the actual page inventory and links. If the project already provides a semantic-link helper, use it as a supplementary check; otherwise complete the checks manually and record the evidence used.
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## Connected Skills
|
|
241
|
+
- Receives output from: `seo-aeo-content-cluster`,
|
|
242
|
+
`seo-aeo-content-quality-auditor`
|
|
243
|
+
- Feeds output to: `seo-aeo-schema-generator`
|
|
244
|
+
|
|
245
|
+
## When to Use
|
|
246
|
+
|
|
247
|
+
Use when mapping links between existing pages, identifying orphaned content, or improving conversion paths from informational pages.
|
|
86
248
|
|
|
87
249
|
## Limitations
|
|
88
|
-
|
|
89
|
-
-
|
|
90
|
-
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
|
|
250
|
+
|
|
251
|
+
- Recommendations depend on the completeness and accuracy of the supplied page inventory and cannot replace a live crawl.
|