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,92 +1,346 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: seo-aeo-meta-description-generator
|
|
3
|
-
description: "Writes
|
|
3
|
+
description: "Writes title tags, meta descriptions, Open Graph tags, and Twitter Card tags aligned to page intent and conversion goals."
|
|
4
4
|
risk: safe
|
|
5
5
|
source: community
|
|
6
6
|
date_added: "2026-04-01"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
#
|
|
9
|
+
# Meta Description Generator Skill
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## Description
|
|
12
|
+
Activate this skill when the user wants to write, generate,
|
|
13
|
+
or optimise meta titles, meta descriptions, or social sharing
|
|
14
|
+
tags for any page. Trigger phrases include: "write meta tags",
|
|
15
|
+
"generate a meta description", "meta description for [page]",
|
|
16
|
+
"write title tag", "optimise CTR for", "meta generator",
|
|
17
|
+
"write OG tags", "social sharing tags", "SERP snippet for [page]".
|
|
12
18
|
|
|
13
|
-
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Input Format
|
|
22
|
+
````json
|
|
23
|
+
{
|
|
24
|
+
"page_title": "string — working title of the page",
|
|
25
|
+
"page_type": "landing-page | blog-post | pillar-page |
|
|
26
|
+
product-page | homepage | category-page",
|
|
27
|
+
"primary_keyword": "string — the main keyword this page targets",
|
|
28
|
+
"secondary_keywords": ["string"],
|
|
29
|
+
"content_summary": "string — 2–4 sentences describing
|
|
30
|
+
what the page covers and who it is for",
|
|
31
|
+
"target_audience": "string — who is searching for this page",
|
|
32
|
+
"cta_intent": "learn | buy | try | compare | download | sign-up",
|
|
33
|
+
"usp": "string — the single strongest differentiator
|
|
34
|
+
or benefit to lead with",
|
|
35
|
+
"brand_name": "string — optional, include if brand
|
|
36
|
+
should appear in title tag"
|
|
37
|
+
}
|
|
38
|
+
````
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## CTR Framework
|
|
43
|
+
|
|
44
|
+
Every meta title and description produced by this skill
|
|
45
|
+
must be built on these CTR mechanics:
|
|
46
|
+
|
|
47
|
+
### What Drives Clicks
|
|
48
|
+
|
|
49
|
+
| Signal | How to Use It |
|
|
50
|
+
|----------------------|------------------------------------------------------|
|
|
51
|
+
| Keyword match | Primary keyword first in title — matches search term |
|
|
52
|
+
| Benefit lead | Lead description with outcome, not feature |
|
|
53
|
+
| Power words | Words that trigger action or curiosity (see list) |
|
|
54
|
+
| Specificity | Numbers and specifics outperform vague claims |
|
|
55
|
+
| CTA verb | End description with an action word |
|
|
56
|
+
| Emotional trigger | Speak to the feeling behind the search |
|
|
57
|
+
| Urgency / scarcity | Use only when genuine — never fabricate |
|
|
58
|
+
|
|
59
|
+
### Power Word Bank
|
|
60
|
+
|
|
61
|
+
Use 1–2 of these per meta description — never more:
|
|
62
|
+
|
|
63
|
+
**Curiosity:** Discover, Uncover, Exactly, The Truth About,
|
|
64
|
+
What Nobody Tells You
|
|
65
|
+
|
|
66
|
+
**Benefit:** Proven, Guaranteed, Free, Instant,
|
|
67
|
+
Without [pain point]
|
|
68
|
+
|
|
69
|
+
**Authority:** Complete Guide, Expert, #1, Most Trusted
|
|
70
|
+
|
|
71
|
+
**Action:** Get, Start, Try, See, Learn, Find Out
|
|
72
|
+
|
|
73
|
+
**Specificity:** [number] Ways, In [timeframe],
|
|
74
|
+
Step-by-Step, [stat]
|
|
75
|
+
|
|
76
|
+
### What to Never Use
|
|
77
|
+
|
|
78
|
+
- "Click here" or "Click to learn more" — generic,
|
|
79
|
+
penalised for passive intent
|
|
80
|
+
- All caps words — treated as spam signals
|
|
81
|
+
- Keyword stuffing — using primary keyword more than once
|
|
82
|
+
in the meta description
|
|
83
|
+
- Duplicate meta descriptions — every page needs unique copy
|
|
84
|
+
- Vague openers — "This page is about..." or
|
|
85
|
+
"We offer..." wastes character space
|
|
86
|
+
- First-person plural — "We", "Our", "Us"
|
|
87
|
+
reduces relevance signals
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Character Limits and Behaviour
|
|
92
|
+
|
|
93
|
+
| Element | Ideal Range | Hard Limit | If Over Limit |
|
|
94
|
+
|----------------------|----------------|------------|----------------------------|
|
|
95
|
+
| Title Tag | 50–60 chars | 60 chars | Truncated with "..." in SERP|
|
|
96
|
+
| Meta Description | 140–155 chars | 160 chars | Truncated mid-sentence |
|
|
97
|
+
| OG Title | 40–60 chars | 88 chars | Truncated in social preview|
|
|
98
|
+
| OG Description | 100–200 chars | 300 chars | Truncated in social preview|
|
|
99
|
+
| Twitter Title | 40–60 chars | 70 chars | Truncated in card |
|
|
100
|
+
| Twitter Description | 100–200 chars | 200 chars | Truncated in card |
|
|
101
|
+
|
|
102
|
+
**Rule:** Never end a meta description mid-sentence.
|
|
103
|
+
If approaching the limit, cut a clause rather than
|
|
104
|
+
let it truncate naturally.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Page Type Copy Rules
|
|
109
|
+
|
|
110
|
+
Adjust tone and structure based on `page_type`:
|
|
111
|
+
|
|
112
|
+
| Page Type | Title Format | Description Approach |
|
|
113
|
+
|----------------|-------------------------------------|---------------------------------------------|
|
|
114
|
+
| Landing Page | Keyword + Outcome + Brand | Benefit lead → USP → CTA |
|
|
115
|
+
| Blog Post | Keyword + Curiosity hook | Question or provocative statement → answer |
|
|
116
|
+
| Pillar Page | Keyword + "Complete Guide" | Scope statement → depth signal → CTA |
|
|
117
|
+
| Product Page | Product Name + Keyword + Brand | Feature benefit → social proof signal → CTA|
|
|
118
|
+
| Homepage | Brand + Core keyword + Tagline | Who you are + who you serve + CTA |
|
|
119
|
+
| Category Page | Category keyword + "Best / Top" | What's covered → audience signal → CTA |
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Output Structure
|
|
124
|
+
|
|
125
|
+
The skill must always produce output in this exact format:
|
|
126
|
+
````markdown
|
|
127
|
+
# Meta Tag Output
|
|
128
|
+
|
|
129
|
+
**Page:** [page_title]
|
|
130
|
+
**Primary Keyword:** [primary_keyword]
|
|
131
|
+
**Page Type:** [page_type]
|
|
132
|
+
|
|
133
|
+
---
|
|
14
134
|
|
|
15
|
-
|
|
135
|
+
## SERP Preview
|
|
16
136
|
|
|
17
|
-
|
|
137
|
+
This is approximately how the page will appear in search results:
|
|
18
138
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
139
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
140
|
+
│ [Title Tag — displayed in blue] │
|
|
141
|
+
│ https://yourdomain.com/page-url │
|
|
142
|
+
│ [Meta Description — displayed in grey below the URL] │
|
|
143
|
+
└─────────────────────────────────────────────────────────────┘
|
|
23
144
|
|
|
24
|
-
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Title Tag Variants
|
|
148
|
+
|
|
149
|
+
Write 3 variants — the user should A/B test these:
|
|
150
|
+
|
|
151
|
+
| # | Title Tag | Chars | Keyword Position | CTR Angle |
|
|
152
|
+
|-----|------------------------------------|-------|------------------|-------------------|
|
|
153
|
+
| V1 | [variant 1 — keyword first] | [n] | First word | Benefit-led |
|
|
154
|
+
| V2 | [variant 2 — keyword + power word] | [n] | First phrase | Curiosity/urgency |
|
|
155
|
+
| V3 | [variant 3 — keyword + brand] | [n] | First phrase | Authority/brand |
|
|
156
|
+
|
|
157
|
+
**Recommended:** V[n] — [one sentence reason why
|
|
158
|
+
this variant will perform best for this page type
|
|
159
|
+
and audience]
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Meta Description Variants
|
|
164
|
+
|
|
165
|
+
Write 3 variants — the user should A/B test these:
|
|
166
|
+
|
|
167
|
+
**V1 — Benefit Lead**
|
|
168
|
+
[Description starting with the outcome or benefit.
|
|
169
|
+
Primary keyword in first half.
|
|
170
|
+
Ends with a CTA verb. 140–155 chars.]
|
|
171
|
+
|
|
172
|
+
Character count: [n]
|
|
173
|
+
Power words used: [list]
|
|
174
|
+
CTA intent: [learn/buy/try/compare/download/sign-up]
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
**V2 — Question Hook**
|
|
179
|
+
[Description opening with a direct question the
|
|
180
|
+
searcher is asking. Answers it partially,
|
|
181
|
+
then drives the click for the full answer.
|
|
182
|
+
Primary keyword present. Ends with CTA. 140–155 chars.]
|
|
183
|
+
|
|
184
|
+
Character count: [n]
|
|
185
|
+
Power words used: [list]
|
|
186
|
+
CTA intent: [intent]
|
|
187
|
+
|
|
188
|
+
---
|
|
25
189
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
190
|
+
**V3 — Social Proof / Specificity**
|
|
191
|
+
[Description leading with a number, stat, or
|
|
192
|
+
specific claim that signals authority.
|
|
193
|
+
Primary keyword present. Ends with CTA. 140–155 chars.]
|
|
30
194
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
- Never end a description mid-sentence near the limit
|
|
195
|
+
Character count: [n]
|
|
196
|
+
Power words used: [list]
|
|
197
|
+
CTA intent: [intent]
|
|
35
198
|
|
|
36
|
-
|
|
37
|
-
- Primary keyword in first 3 words of every title variant
|
|
38
|
-
- Primary keyword in first half of every description variant
|
|
39
|
-
- At least one power word per description
|
|
40
|
-
- Every description ends with a CTA verb
|
|
41
|
-
- Never use "click here", passive openers, or all-caps
|
|
199
|
+
**Recommended:** V[n] — [one sentence reason]
|
|
42
200
|
|
|
43
|
-
|
|
44
|
-
OG and Twitter tags can be more conversational than SERP tags. Write them as distinct copy — not copy-pastes of the meta description.
|
|
201
|
+
---
|
|
45
202
|
|
|
46
|
-
##
|
|
203
|
+
## Open Graph Tags (Social Sharing)
|
|
47
204
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
205
|
+
Used when the page is shared on LinkedIn, Facebook,
|
|
206
|
+
WhatsApp, and Slack:
|
|
207
|
+
```html
|
|
208
|
+
<meta property="og:title"
|
|
209
|
+
content="[OG title — can be more creative than title tag,
|
|
210
|
+
40–60 chars]" />
|
|
211
|
+
<meta property="og:description"
|
|
212
|
+
content="[OG description — can be more conversational
|
|
213
|
+
than meta description, 100–200 chars, no char limit
|
|
214
|
+
pressure]" />
|
|
215
|
+
<meta property="og:type"
|
|
216
|
+
content="[website / article / product]" />
|
|
217
|
+
<meta property="og:url"
|
|
218
|
+
content="[canonical URL placeholder]" />
|
|
219
|
+
<meta property="og:image"
|
|
220
|
+
content="[image URL placeholder — recommended
|
|
221
|
+
1200x630px]" />
|
|
222
|
+
```
|
|
61
223
|
|
|
62
|
-
|
|
224
|
+
---
|
|
63
225
|
|
|
64
|
-
|
|
65
|
-
- ✅ **Do:** Keep OG and Twitter descriptions more conversational than SERP versions
|
|
66
|
-
- ✅ **Do:** Verify character count on every variant before outputting
|
|
67
|
-
- ❌ **Don't:** Use the same exact-match anchor or keyword more than once per description
|
|
68
|
-
- ❌ **Don't:** Copy-paste the meta description into the OG description
|
|
69
|
-
- ❌ **Don't:** Let any description end mid-sentence near the character limit
|
|
226
|
+
## Twitter / X Card Tags
|
|
70
227
|
|
|
71
|
-
|
|
228
|
+
Used when the page is shared on X (Twitter):
|
|
229
|
+
```html
|
|
230
|
+
<meta name="twitter:card"
|
|
231
|
+
content="summary_large_image" />
|
|
232
|
+
<meta name="twitter:title"
|
|
233
|
+
content="[Twitter title — punchy, 40–60 chars,
|
|
234
|
+
can differ from title tag]" />
|
|
235
|
+
<meta name="twitter:description"
|
|
236
|
+
content="[Twitter description — conversational tone,
|
|
237
|
+
100–200 chars]" />
|
|
238
|
+
<meta name="twitter:image"
|
|
239
|
+
content="[image URL placeholder — recommended
|
|
240
|
+
1200x628px]" />
|
|
241
|
+
```
|
|
72
242
|
|
|
73
|
-
|
|
74
|
-
**Solution:** Always trim a clause rather than letting natural truncation cut the sentence.
|
|
243
|
+
---
|
|
75
244
|
|
|
76
|
-
|
|
77
|
-
**Solution:** Each variant must use a genuinely different CTR mechanic — not just rearranged words.
|
|
245
|
+
## Quality Checklist
|
|
78
246
|
|
|
79
|
-
|
|
247
|
+
Before accepting any variant, verify:
|
|
80
248
|
|
|
81
|
-
|
|
82
|
-
-
|
|
249
|
+
### Title Tag
|
|
250
|
+
- [ ] Primary keyword appears in first 3 words
|
|
251
|
+
- [ ] Character count is 50–60
|
|
252
|
+
- [ ] No keyword duplication within the title
|
|
253
|
+
- [ ] Does not start with the brand name
|
|
254
|
+
(unless homepage)
|
|
255
|
+
- [ ] Does not use all caps
|
|
256
|
+
- [ ] Reads naturally — not a keyword string
|
|
83
257
|
|
|
84
|
-
|
|
258
|
+
### Meta Description
|
|
259
|
+
- [ ] Primary keyword appears in first half
|
|
260
|
+
of the description
|
|
261
|
+
- [ ] Character count is 140–155
|
|
262
|
+
- [ ] Contains at least one power word
|
|
263
|
+
- [ ] Ends with a CTA verb or action phrase
|
|
264
|
+
- [ ] Does not duplicate the title tag phrasing
|
|
265
|
+
- [ ] Does not use "click here" or passive openers
|
|
266
|
+
- [ ] Sentence is complete — does not truncate
|
|
267
|
+
mid-word near the limit
|
|
268
|
+
- [ ] Unique — does not match any other
|
|
269
|
+
page's meta description
|
|
85
270
|
|
|
86
|
-
|
|
87
|
-
- [
|
|
271
|
+
### Social Tags
|
|
272
|
+
- [ ] OG title differs from title tag
|
|
273
|
+
(more creative or conversational)
|
|
274
|
+
- [ ] OG description is not a copy-paste
|
|
275
|
+
of meta description
|
|
276
|
+
- [ ] Twitter title is punchy and
|
|
277
|
+
under 70 characters
|
|
278
|
+
- [ ] Image placeholder included for both
|
|
279
|
+
OG and Twitter
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## Variant Comparison Table
|
|
284
|
+
|
|
285
|
+
| Variant | Chars | Keyword in First Half | Power Words | CTA Verb | Recommended |
|
|
286
|
+
|---------------------|-------|-----------------------|-------------|----------|-------------|
|
|
287
|
+
| Title V1 | [n] | ✅ / ❌ | [words] | — | ✅ / — |
|
|
288
|
+
| Title V2 | [n] | ✅ / ❌ | [words] | — | — / — |
|
|
289
|
+
| Title V3 | [n] | ✅ / ❌ | [words] | — | — / — |
|
|
290
|
+
| Description V1 | [n] | ✅ / ❌ | [words] | [verb] | ✅ / — |
|
|
291
|
+
| Description V2 | [n] | ✅ / ❌ | [words] | [verb] | — / — |
|
|
292
|
+
| Description V3 | [n] | ✅ / ❌ | [words] | [verb] | — / — |
|
|
293
|
+
````
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## Execution Steps
|
|
298
|
+
|
|
299
|
+
1. Read `page_type` and apply the corresponding
|
|
300
|
+
copy rules from the Page Type Copy Rules table
|
|
301
|
+
2. Extract the single most compelling benefit or
|
|
302
|
+
outcome from `content_summary` and `usp` —
|
|
303
|
+
this becomes the lead for Description V1
|
|
304
|
+
3. Identify the core question the searcher is asking
|
|
305
|
+
when they type `primary_keyword` —
|
|
306
|
+
this becomes the hook for Description V2
|
|
307
|
+
4. Find the strongest specific claim, number, or
|
|
308
|
+
social proof signal from `content_summary` —
|
|
309
|
+
this becomes the lead for Description V3
|
|
310
|
+
5. Write Title V1 — keyword first, benefit second,
|
|
311
|
+
brand third if `brand_name` provided
|
|
312
|
+
6. Write Title V2 — keyword + power word combination,
|
|
313
|
+
curiosity or urgency angle
|
|
314
|
+
7. Write Title V3 — keyword + authority signal or
|
|
315
|
+
brand, suited to navigational intent
|
|
316
|
+
8. Write all three meta description variants using
|
|
317
|
+
the CTR framework — check character count
|
|
318
|
+
after every draft
|
|
319
|
+
9. Verify no variant ends mid-sentence near
|
|
320
|
+
the character limit — trim if needed
|
|
321
|
+
10. Write OG title and description —
|
|
322
|
+
these can be more conversational and creative
|
|
323
|
+
than the SERP versions
|
|
324
|
+
11. Write Twitter title and description —
|
|
325
|
+
punchy, platform-appropriate tone
|
|
326
|
+
12. Build the SERP preview block using
|
|
327
|
+
the recommended title and description
|
|
328
|
+
13. Run the full Quality Checklist on all variants
|
|
329
|
+
14. Build the Variant Comparison Table
|
|
330
|
+
15. State the recommended title and description
|
|
331
|
+
variant with a one-sentence reason for each
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
## Connected Skills
|
|
336
|
+
- Receives output from: `seo-aeo-landing-page-writer`,
|
|
337
|
+
`seo-aeo-blog-writer`, `seo-aeo-keyword-research`
|
|
338
|
+
- Feeds output to: `seo-aeo-content-quality-auditor`
|
|
339
|
+
|
|
340
|
+
## When to Use
|
|
341
|
+
|
|
342
|
+
Use when writing or revising title tags, meta descriptions, Open Graph metadata, or Twitter Card metadata for a page.
|
|
88
343
|
|
|
89
344
|
## Limitations
|
|
90
|
-
|
|
91
|
-
-
|
|
92
|
-
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
|
|
345
|
+
|
|
346
|
+
- Search engines may rewrite snippets, and metadata alone cannot guarantee rankings, click-through rate, or social preview behavior.
|