moicle 2.3.0 → 3.0.0
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 +36 -47
- package/assets/commands/marketing.md +6 -6
- package/assets/skills/docs/sync/SKILL.md +195 -157
- package/assets/skills/feature/build/SKILL.md +891 -0
- package/assets/skills/feature/track/SKILL.md +157 -0
- package/assets/skills/fix/bug/SKILL.md +449 -0
- package/assets/skills/fix/incident/SKILL.md +6 -6
- package/assets/skills/marketing/brand/SKILL.md +304 -0
- package/assets/skills/marketing/content/SKILL.md +199 -141
- package/assets/skills/research/explore/SKILL.md +392 -0
- package/assets/skills/review/code/SKILL.md +622 -0
- package/dist/commands/install/usage.js +2 -2
- package/dist/commands/install/usage.js.map +1 -1
- package/package.json +1 -1
- package/assets/skills/docs/write/SKILL.md +0 -274
- package/assets/skills/feature/api/SKILL.md +0 -277
- package/assets/skills/feature/deprecate/SKILL.md +0 -276
- package/assets/skills/feature/new/SKILL.md +0 -273
- package/assets/skills/feature/refactor/SKILL.md +0 -269
- package/assets/skills/fix/hotfix/SKILL.md +0 -233
- package/assets/skills/fix/pr-comment/SKILL.md +0 -186
- package/assets/skills/fix/root-cause/SKILL.md +0 -276
- package/assets/skills/marketing/logo/SKILL.md +0 -252
- package/assets/skills/marketing/seo-blog/SKILL.md +0 -367
- package/assets/skills/marketing/video/SKILL.md +0 -258
- package/assets/skills/research/onboarding/SKILL.md +0 -225
- package/assets/skills/research/spike/SKILL.md +0 -228
- package/assets/skills/research/web/SKILL.md +0 -204
- package/assets/skills/review/architect/SKILL.md +0 -274
- package/assets/skills/review/branch/SKILL.md +0 -277
- package/assets/skills/review/pr/SKILL.md +0 -231
- package/assets/skills/review/tdd/SKILL.md +0 -245
|
@@ -1,22 +1,36 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: marketing-content
|
|
3
|
-
description:
|
|
3
|
+
description: Content writing workflow with two modes — STRATEGY (audience research, content pillars, multi-channel calendar, blog/social/newsletter) and POST (write one evergreen blog post optimized for Search AND AI tools — answer-first, intent-classified, overlap-audited). Use when user says "write content", "content strategy", "content plan", "social media content", "newsletter", "blog post", "write seo blog", "seo blog", "evergreen post", "compare post", "glossary post", "blog for AI to recommend", "search + ai".
|
|
4
|
+
args: "[MODE]"
|
|
4
5
|
---
|
|
5
6
|
|
|
6
|
-
# Content
|
|
7
|
+
# Content Writing Workflow
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
One skill, two modes: build a multi-channel content strategy, or write one evergreen post really well.
|
|
9
10
|
|
|
10
|
-
##
|
|
11
|
+
## Pick your mode
|
|
11
12
|
|
|
13
|
+
| Situation | Mode | Jump to |
|
|
14
|
+
|-----------|------|---------|
|
|
15
|
+
| Building a content strategy (pillars, calendar, multi-channel) | **STRATEGY** | [Mode STRATEGY](#mode-strategy) |
|
|
16
|
+
| Writing ONE evergreen blog post optimized for Search + AI | **POST** | [Mode POST](#mode-post) |
|
|
17
|
+
|
|
18
|
+
- ❌ Writing API / project documentation → use `/docs-sync`
|
|
19
|
+
- ❌ Designing a logo or video → use `/marketing-brand`
|
|
20
|
+
- ❌ Full go-to-market plan (brand + content) → use `/marketing` command
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# Mode STRATEGY
|
|
26
|
+
|
|
27
|
+
Create content strategy: audience research, content pillars, SEO blog posts, social media plans, newsletters.
|
|
28
|
+
|
|
29
|
+
## When to use
|
|
12
30
|
- ✅ Building a content strategy from scratch (pillars, calendar, channels)
|
|
13
31
|
- ✅ Writing one specific piece (blog post, newsletter, social thread)
|
|
14
32
|
- ✅ Repurposing one piece into multi-channel content
|
|
15
|
-
- ❌ Writing
|
|
16
|
-
- ❌ Writing release notes / changelog → use git history + manual
|
|
17
|
-
- ❌ Designing a video → use `/marketing-video`
|
|
18
|
-
|
|
19
|
-
---
|
|
33
|
+
- ❌ Writing one evergreen SEO/AI post deeply → **Mode POST**
|
|
20
34
|
|
|
21
35
|
## Workflow
|
|
22
36
|
|
|
@@ -24,14 +38,9 @@ Workflow for creating content strategy: audience research, content pillars, SEO
|
|
|
24
38
|
RESEARCH → PLAN → WRITE → OPTIMIZE → DISTRIBUTE
|
|
25
39
|
```
|
|
26
40
|
|
|
27
|
-
---
|
|
28
|
-
|
|
29
41
|
## Phase 1: RESEARCH
|
|
30
42
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
### Gather brief
|
|
34
|
-
Ask the user for (skip what's already known):
|
|
43
|
+
### Gather brief (skip what's already known)
|
|
35
44
|
|
|
36
45
|
| Field | Example |
|
|
37
46
|
|-------|---------|
|
|
@@ -45,159 +54,99 @@ Ask the user for (skip what's already known):
|
|
|
45
54
|
|
|
46
55
|
### Audience & SEO research
|
|
47
56
|
- **Search intent** for the topic (informational / navigational / transactional / commercial)
|
|
48
|
-
- **Top 10 SERP**
|
|
57
|
+
- **Top 10 SERP** for 3–5 target keywords — what content ranks?
|
|
49
58
|
- **Gaps** competitors miss (more depth, better examples, fresher data)
|
|
50
59
|
- **Keyword set** — primary + 2–5 long-tails per piece
|
|
51
60
|
|
|
52
61
|
### Gate
|
|
53
|
-
- [ ] Brief captured
|
|
54
|
-
- [ ] Target keywords with search intent identified
|
|
55
|
-
- [ ] Competitor gap identified
|
|
56
|
-
|
|
57
|
-
---
|
|
62
|
+
- [ ] Brief captured · Target keywords with search intent · Competitor gap identified
|
|
58
63
|
|
|
59
64
|
## Phase 2: PLAN
|
|
60
65
|
|
|
61
|
-
**Goal:** define content pillars + calendar.
|
|
62
|
-
|
|
63
66
|
### Content pillars
|
|
64
67
|
Pick 3–5 themes that ladder up to the brand's positioning. Each pillar gets a mix of formats.
|
|
65
68
|
|
|
66
69
|
| Pillar | Why it matters to audience | Formats |
|
|
67
70
|
|--------|---------------------------|---------|
|
|
68
71
|
| {pillar 1} | {pain → outcome} | blog, social, newsletter |
|
|
69
|
-
| {pillar 2} | ... | ... |
|
|
70
72
|
|
|
71
|
-
### Calendar template
|
|
72
|
-
Plan 4–6 weeks ahead. Use a consistent cadence.
|
|
73
|
+
### Calendar template (4–6 weeks ahead, consistent cadence)
|
|
73
74
|
|
|
74
75
|
| Week | Blog (long-form) | Social (short-form) | Newsletter |
|
|
75
76
|
|------|------------------|---------------------|------------|
|
|
76
77
|
| W1 | {title} | 3 posts (1 educational, 1 hot take, 1 personal) | {topic} |
|
|
77
|
-
| W2 | ... | ... | ... |
|
|
78
78
|
|
|
79
79
|
### Content mix rule (per channel)
|
|
80
80
|
- **80/20:** 80% value (educate / entertain), 20% promote
|
|
81
81
|
- **Don't post when you have nothing to say** — skip a slot rather than post filler
|
|
82
82
|
|
|
83
83
|
### Gate
|
|
84
|
-
- [ ] 3–5 pillars
|
|
85
|
-
- [ ] Calendar drafted for ≥4 weeks
|
|
86
|
-
- [ ] Channels matched to audience habits
|
|
87
|
-
|
|
88
|
-
---
|
|
84
|
+
- [ ] 3–5 pillars with rationale · Calendar ≥4 weeks · Channels matched to audience habits
|
|
89
85
|
|
|
90
86
|
## Phase 3: WRITE
|
|
91
87
|
|
|
92
|
-
|
|
88
|
+
One format at a time.
|
|
93
89
|
|
|
94
90
|
### Blog post structure (long-form, SEO)
|
|
95
|
-
|
|
96
91
|
```
|
|
97
|
-
TITLE (≤60 chars,
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
H1 (matches title or close variant)
|
|
101
|
-
|
|
102
|
-
HOOK (2–3 sentences: the problem the reader has)
|
|
103
|
-
|
|
92
|
+
TITLE (≤60 chars, primary keyword) · META DESCRIPTION (≤155 chars, keyword + CTA)
|
|
93
|
+
H1 (matches title)
|
|
94
|
+
HOOK (2–3 sentences: the reader's problem)
|
|
104
95
|
TL;DR (3 bullets: the answer up front)
|
|
105
|
-
|
|
106
96
|
H2: Problem context — why this matters now
|
|
107
|
-
H2: The solution —
|
|
108
|
-
H3: Step 1 / Aspect 1
|
|
109
|
-
H3: Step 2
|
|
110
|
-
H3: Step 3
|
|
97
|
+
H2: The solution — main argument (H3: Step 1 / Step 2 / Step 3)
|
|
111
98
|
H2: Common pitfalls — what NOT to do
|
|
112
99
|
H2: Real example — actual code / screenshot / case
|
|
113
100
|
H2: Next steps — what to do today
|
|
114
|
-
|
|
115
|
-
CTA (1 line: try the product / subscribe / share)
|
|
101
|
+
CTA (1 line: try / subscribe / share)
|
|
116
102
|
```
|
|
117
|
-
|
|
118
|
-
Target length: 1200–2500 words for SEO; 500–1000 for opinion pieces.
|
|
103
|
+
Target length: 1200–2500 words for SEO; 500–1000 for opinion.
|
|
119
104
|
|
|
120
105
|
### Social thread (X / LinkedIn)
|
|
121
|
-
|
|
122
106
|
```
|
|
123
107
|
HOOK (1–2 lines — must work alone in the feed)
|
|
124
|
-
↓
|
|
125
|
-
|
|
126
|
-
- Each post stands alone if shared
|
|
127
|
-
- One idea per post
|
|
128
|
-
- Use line breaks
|
|
129
|
-
↓
|
|
130
|
-
CTA (link to blog / signup)
|
|
108
|
+
↓ 3–7 posts each ≤280 chars (each stands alone, one idea per post, line breaks)
|
|
109
|
+
↓ CTA (link to blog / signup)
|
|
131
110
|
```
|
|
132
111
|
|
|
133
112
|
### Newsletter
|
|
134
|
-
|
|
135
113
|
```
|
|
136
|
-
SUBJECT (≤50 chars, curiosity > clickbait)
|
|
137
|
-
PREVIEW TEXT (≤90 chars, complements subject)
|
|
138
|
-
|
|
114
|
+
SUBJECT (≤50 chars, curiosity > clickbait) · PREVIEW TEXT (≤90 chars)
|
|
139
115
|
GREETING (personal, 1–2 lines)
|
|
140
|
-
|
|
141
116
|
MAIN STORY (1 idea, 200–400 words)
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
CTA (one ask only)
|
|
146
|
-
|
|
147
|
-
SIGNATURE
|
|
117
|
+
LINKS (3–5 curated, 1-line why-it-matters)
|
|
118
|
+
CTA (one ask only) · SIGNATURE
|
|
148
119
|
```
|
|
149
120
|
|
|
150
121
|
### Writing rules
|
|
151
|
-
- **One idea per paragraph** (≤4 lines)
|
|
152
|
-
- **
|
|
153
|
-
- **Concrete > abstract** (numbers, code, screenshots, names)
|
|
154
|
-
- **Cut filler:** "in order to" → "to", "due to the fact that" → "because", "very important" → "critical"
|
|
122
|
+
- **One idea per paragraph** (≤4 lines) · **Active voice** · **Concrete > abstract** (numbers, code, names)
|
|
123
|
+
- **Cut filler:** "in order to"→"to", "due to the fact that"→"because", "very important"→"critical"
|
|
155
124
|
- **Read aloud** before publishing — if you stumble, rewrite
|
|
156
125
|
|
|
157
126
|
### Gate
|
|
158
|
-
- [ ] Draft matches the format
|
|
159
|
-
- [ ] Primary keyword in title + H1 + first 100 words (blog)
|
|
160
|
-
- [ ] Read aloud — no stumbles
|
|
161
|
-
- [ ] At least 1 concrete example (number, code, screenshot, name)
|
|
162
|
-
|
|
163
|
-
---
|
|
127
|
+
- [ ] Draft matches the format · Primary keyword in title + H1 + first 100 words (blog) · Read aloud, no stumbles · ≥1 concrete example
|
|
164
128
|
|
|
165
129
|
## Phase 4: OPTIMIZE
|
|
166
130
|
|
|
167
|
-
**Goal:** make the content perform.
|
|
168
|
-
|
|
169
131
|
### Combined checklist (SEO + quality)
|
|
170
|
-
- [ ] Title ≤60 chars
|
|
171
|
-
- [ ]
|
|
172
|
-
- [ ]
|
|
173
|
-
- [ ]
|
|
174
|
-
- [ ]
|
|
175
|
-
- [ ] Internal links to ≥2 related posts
|
|
176
|
-
- [ ] External links to ≥1 authoritative source per major claim
|
|
177
|
-
- [ ] No keyword stuffing (read naturally)
|
|
178
|
-
- [ ] Mobile-friendly: short paragraphs, clear hierarchy
|
|
179
|
-
- [ ] Reading level appropriate for audience (Hemingway grade ≤10 for general)
|
|
180
|
-
- [ ] No typos (run a checker)
|
|
181
|
-
|
|
182
|
-
### Gate
|
|
183
|
-
- [ ] All checklist items pass (or explicit waiver)
|
|
184
|
-
|
|
185
|
-
---
|
|
132
|
+
- [ ] Title ≤60 chars + primary keyword · Meta description ≤155 chars · H1 matches search intent
|
|
133
|
+
- [ ] H2/H3 use related keywords naturally · Alt text on all images
|
|
134
|
+
- [ ] Internal links ≥2 related posts · External links ≥1 authoritative source per claim
|
|
135
|
+
- [ ] No keyword stuffing · Mobile-friendly (short paragraphs, clear hierarchy)
|
|
136
|
+
- [ ] Reading level appropriate (Hemingway grade ≤10 for general) · No typos
|
|
186
137
|
|
|
187
138
|
## Phase 5: DISTRIBUTE
|
|
188
139
|
|
|
189
|
-
**Goal:** get the content in front of the right people.
|
|
190
|
-
|
|
191
140
|
### Per-channel adaptation
|
|
192
141
|
|
|
193
142
|
| Channel | Adaptation |
|
|
194
143
|
|---------|------------|
|
|
195
144
|
| Blog | Full piece, optimized for search |
|
|
196
|
-
| X | Thread of 3–7 posts
|
|
197
|
-
| LinkedIn | 1 long-form post (200–500 words),
|
|
198
|
-
| Dev.to / Hashnode | Republish
|
|
199
|
-
| Reddit | Comment in relevant thread first,
|
|
200
|
-
| Newsletter | Featured story or
|
|
145
|
+
| X | Thread of 3–7 posts + link to blog |
|
|
146
|
+
| LinkedIn | 1 long-form post (200–500 words), link in comments |
|
|
147
|
+
| Dev.to / Hashnode | Republish with canonical link |
|
|
148
|
+
| Reddit | Comment in relevant thread first, share only if community allows |
|
|
149
|
+
| Newsletter | Featured story or blurb + link |
|
|
201
150
|
| YouTube Shorts / TikTok | 30–60 sec extract of key insight |
|
|
202
151
|
|
|
203
152
|
### Tracking
|
|
@@ -206,64 +155,173 @@ SIGNATURE
|
|
|
206
155
|
- Iterate: double down on what works, kill what doesn't after 3 attempts
|
|
207
156
|
|
|
208
157
|
### Gate
|
|
209
|
-
- [ ] Adapted for each
|
|
210
|
-
- [ ] UTM tags applied
|
|
211
|
-
- [ ] Tracking in place
|
|
158
|
+
- [ ] Adapted for each channel · UTM tags applied · Tracking in place
|
|
212
159
|
|
|
160
|
+
---
|
|
213
161
|
---
|
|
214
162
|
|
|
215
|
-
|
|
163
|
+
# Mode POST
|
|
216
164
|
|
|
217
|
-
|
|
218
|
-
## Content Plan: {brand / campaign}
|
|
165
|
+
Write **one** evergreen blog post that ranks on traditional search AND is easy for AI systems (ChatGPT, Bing/Copilot, Perplexity) to cite or recommend. Intent-first, answer-first, overlap-audited.
|
|
219
166
|
|
|
220
|
-
|
|
221
|
-
-
|
|
222
|
-
-
|
|
223
|
-
-
|
|
167
|
+
## When to use
|
|
168
|
+
- ✅ Writing a single evergreen blog post (entity / trust / compare / glossary / use-case / FAQ)
|
|
169
|
+
- ✅ Updating an existing evergreen post that has drifted
|
|
170
|
+
- ✅ Replacing a thin / outdated post with a stronger version on the same intent
|
|
171
|
+
- ❌ Multi-post content plan / calendar / strategy → **Mode STRATEGY**
|
|
172
|
+
- ❌ Changelog / feature launch → write manually
|
|
173
|
+
- ❌ Time-sensitive news → not evergreen, different rules
|
|
224
174
|
|
|
225
|
-
|
|
226
|
-
|
|
175
|
+
## Core principle
|
|
176
|
+
**Don't write a blog "to fill the calendar." Write the answer to a question users actually ask** on Search or to an AI. One strong intent = **one canonical post**. If an existing post is stale → fix it; don't pile a new post on top.
|
|
227
177
|
|
|
228
|
-
|
|
229
|
-
| Title | Format | Status | Channel |
|
|
230
|
-
|-------|--------|--------|---------|
|
|
231
|
-
| ... | blog | published | site + X + LinkedIn |
|
|
178
|
+
## Workflow
|
|
232
179
|
|
|
233
|
-
### Metrics to Watch
|
|
234
|
-
- {KPI 1, baseline → target}
|
|
235
|
-
- {KPI 2}
|
|
236
180
|
```
|
|
181
|
+
1 INTENT → 1.5 OVERLAP AUDIT → 2 RESEARCH → 3 FILE → 4 FRONTMATTER → 5 BODY → 6 PATTERN → 7 RULES → 8 LINKS → 9 VERIFY → 10 REPORT
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Step 1: Classify intent
|
|
185
|
+
|
|
186
|
+
Pick **one** category (don't write a hybrid — split into two posts if needed):
|
|
187
|
+
|
|
188
|
+
| # | Intent | Example queries |
|
|
189
|
+
|---|--------|-----------------|
|
|
190
|
+
| 1 | **Entity** | "What is {Brand}", "How does {Brand} work" |
|
|
191
|
+
| 2 | **Trust** | "Is {Brand} legit", "Why is {Brand} {claim}" |
|
|
192
|
+
| 3 | **Compare** | "{Brand} vs {Competitor}", "Best {category} apps in {region}" |
|
|
193
|
+
| 4 | **Glossary** | "What is {term}", "{term} explained" |
|
|
194
|
+
| 5 | **Use case** | "How to {action} with {Brand}" |
|
|
195
|
+
| 6 | **Problem / FAQ** | "Why is my {thing} not working" |
|
|
196
|
+
|
|
197
|
+
## Step 1.5: Overlap audit (mandatory)
|
|
198
|
+
|
|
199
|
+
Before writing anything new, inventory existing posts:
|
|
200
|
+
```bash
|
|
201
|
+
find {blog_dir} -name "*.md" -maxdepth 2 | sort # common: content/blog/, app/blog/, docs/blog/
|
|
202
|
+
```
|
|
203
|
+
For each existing post, extract: slug, primary intent, funnel stage, evergreen/seasonal, stale/off-brand claims.
|
|
204
|
+
|
|
205
|
+
### Decision rules
|
|
206
|
+
| Situation | Action |
|
|
207
|
+
|-----------|--------|
|
|
208
|
+
| New post overlaps >60% intent with existing | **Do not create new.** Update existing OR refocus both to distinct intents |
|
|
209
|
+
| Existing post has stale claims | Update the existing post first or in the same batch — never ignore it |
|
|
210
|
+
| New intent genuinely uncovered | Proceed to Step 2 |
|
|
211
|
+
|
|
212
|
+
### Gate
|
|
213
|
+
- [ ] Inventory read · No >60% overlap (or plan to update existing) · Stale-claim audit done (or N/A)
|
|
214
|
+
|
|
215
|
+
## Step 2: Research (short but solid)
|
|
237
216
|
|
|
217
|
+
If the post mentions current facts, third parties, or specific numbers — **verify before writing**: competitor/partner facts, stats/dates/policies, app-store claims, pricing/fees.
|
|
218
|
+
|
|
219
|
+
**Source priority:** 1) official project source 2) official third-party source 3) project marketing docs 4) reputable recent third-party (≤1 year for pricing/stats).
|
|
220
|
+
|
|
221
|
+
**Hard rules:** no invented benchmarks · no invented comparisons · prefer durable claims over snapshot stats.
|
|
222
|
+
|
|
223
|
+
### Gate
|
|
224
|
+
- [ ] Every non-trivial factual claim has a source · Sources noted for reviewer
|
|
225
|
+
|
|
226
|
+
## Step 3: File output
|
|
227
|
+
|
|
228
|
+
```text
|
|
229
|
+
{blog_dir}/{slug}.md
|
|
230
|
+
```
|
|
231
|
+
**Slug rules:** lowercase, hyphen-separated, language convention for non-English projects, maps to **intent** not campaign. Examples: `what-is-{brand}.md`, `is-{brand}-legit.md`, `{brand}-vs-{competitor}.md`.
|
|
232
|
+
|
|
233
|
+
## Step 4: Frontmatter
|
|
234
|
+
|
|
235
|
+
```yaml
|
|
236
|
+
---
|
|
237
|
+
title: "Title that matches the real query"
|
|
238
|
+
description: "140-160 chars. What this post does for the reader — not fluff."
|
|
239
|
+
date: "YYYY-MM-DD"
|
|
240
|
+
author: "{Brand} Team"
|
|
241
|
+
image: "/images/blog/{slug}.svg"
|
|
242
|
+
category: "<from project's category enum>"
|
|
243
|
+
tags: ["<brand>", "<topic>", "<intent>"]
|
|
238
244
|
---
|
|
245
|
+
```
|
|
246
|
+
**Picking `category`:** use the project's existing enum — never invent. Common: `guide`/`tutorial` (entity, glossary, use-case, FAQ), `tips` (optimization), `compare`/`review` (comparison).
|
|
247
|
+
|
|
248
|
+
## Step 5: Body structure (answer-first)
|
|
249
|
+
|
|
250
|
+
```markdown
|
|
251
|
+
{2-4 sentences directly answering the title question — no warm-up, no story}
|
|
252
|
+
|
|
253
|
+
## TL;DR
|
|
254
|
+
- Key takeaway 1 / 2 / 3
|
|
255
|
+
|
|
256
|
+
## {Primary heading 1 — the main answer expanded}
|
|
257
|
+
## {Primary heading 2 — supporting context}
|
|
258
|
+
## When to choose / use / consider {Brand}
|
|
259
|
+
## Important caveats
|
|
260
|
+
|
|
261
|
+
## FAQ
|
|
262
|
+
### {Question 1 — phrased exactly as users ask}
|
|
263
|
+
{Direct answer, 2-4 sentences}
|
|
264
|
+
|
|
265
|
+
## Conclusion / Next step
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
**Why this works for AI systems:** TL;DR + direct answer + FAQ blocks are the highest-cited patterns. AI tools quote concise answers; long intros get skipped.
|
|
239
269
|
|
|
240
|
-
##
|
|
270
|
+
## Step 6: Pattern per intent type
|
|
271
|
+
- **Entity / Trust:** what it is, who it's for, where the core value comes from (sources, business model), who's behind it, support/app-stores/community.
|
|
272
|
+
- **Compare:** real comparison table (criterion × options); fair, no dunking without evidence; state when each option fits better; verify every cell.
|
|
273
|
+
- **Glossary:** define in 1-2 sentences at top, concrete example, end-user language, link to related guide.
|
|
274
|
+
- **Use case / How-to:** numbered steps (≤7), visuals, prerequisites first, expected outcome.
|
|
275
|
+
- **Problem / FAQ:** describe symptom, list causes by likelihood, fix per cause, when to escalate.
|
|
241
276
|
|
|
242
|
-
|
|
243
|
-
- **
|
|
244
|
-
- **
|
|
245
|
-
- **
|
|
246
|
-
- **
|
|
277
|
+
## Step 7: SEO + AI optimization rules
|
|
278
|
+
- **H1 = the real query** · **First paragraph answers directly** (no warm-up)
|
|
279
|
+
- **Headings tell the story** (scan H2s → understand the post) · **Tables/lists** beat paragraphs
|
|
280
|
+
- **Internal links** to related posts + product pages · **One consistent brand positioning sentence**
|
|
281
|
+
- **No keyword stuffing** · **No filler** · **Sensitive claims need evidence** or safe wording ("may", "in some cases")
|
|
282
|
+
|
|
283
|
+
## Step 8: Internal link rules
|
|
284
|
+
Minimum **2-4 internal links**: 1 to core product/about page, 1 to support/help page, 1-2 to related foundational posts. Anchor text natural + varied (no repeated exact-match).
|
|
285
|
+
|
|
286
|
+
## Step 9: Verify (pre-publish)
|
|
287
|
+
- [ ] Intent distinct from existing posts · Title = real query · First paragraph answers directly
|
|
288
|
+
- [ ] Table / FAQ / numbered steps where intent calls for them · ≥2 internal links, natural anchors
|
|
289
|
+
- [ ] No unverified claims · Frontmatter `category` matches enum · Sitemap updated (if required) · OG image exists · Reading level reasonable
|
|
290
|
+
|
|
291
|
+
## Step 10: Report
|
|
292
|
+
```markdown
|
|
293
|
+
## SEO Blog Post: {title}
|
|
294
|
+
### File: `{blog_dir}/{slug}.md`
|
|
295
|
+
### Intent: {category} · Primary query: "{search query}"
|
|
296
|
+
### Key internal links: {anchor → /path}
|
|
297
|
+
### Overlap audit: Checked {N} posts · Decision: {NEW / UPDATED `slug` / REFOCUSED}
|
|
298
|
+
### Items needing user review: {claim X — verify source}
|
|
299
|
+
```
|
|
247
300
|
|
|
248
301
|
---
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
## Hard Rules (both modes)
|
|
305
|
+
|
|
306
|
+
- **One idea per piece / one canonical post per intent** — if you have two intents, write two pieces.
|
|
307
|
+
- **No filler** — every paragraph earns its place. **No keyword stuffing** — humans first, search engines second.
|
|
308
|
+
- **Skip a slot rather than post filler. Iterate based on data** — kill what doesn't work after 3 attempts.
|
|
309
|
+
- **POST specifics:** overlap audit before writing (Step 1.5 not optional); answer-first (TL;DR + direct answer in first paragraph); no invented facts/benchmarks/comparisons; stale-claim audit fixes outdated posts in the same batch; slug = intent; update sitemap if required.
|
|
249
310
|
|
|
250
311
|
## Related Skills
|
|
251
312
|
|
|
252
313
|
| When | Use |
|
|
253
314
|
|------|-----|
|
|
254
|
-
| Building brand identity (logo
|
|
255
|
-
|
|
|
256
|
-
|
|
|
257
|
-
| Writing project documentation | `/docs-write` |
|
|
258
|
-
|
|
259
|
-
---
|
|
315
|
+
| Building brand identity (logo) or video | `/marketing-brand` |
|
|
316
|
+
| Building a full marketing plan | `/marketing` (combines brand + content) |
|
|
317
|
+
| Writing project documentation | `/docs-sync` |
|
|
260
318
|
|
|
261
319
|
## Recommended Agents
|
|
262
320
|
|
|
263
|
-
| Phase | Agent | Purpose |
|
|
264
|
-
|
|
265
|
-
| RESEARCH | `@docs-writer` |
|
|
321
|
+
| Phase / Step | Agent | Purpose |
|
|
322
|
+
|--------------|-------|---------|
|
|
323
|
+
| RESEARCH / OVERLAP | `@docs-writer` | Research findings + inventory analysis |
|
|
266
324
|
| PLAN | `@clean-architect` | Structure pillars and calendar |
|
|
267
|
-
| WRITE | `@docs-writer` | Draft pieces |
|
|
268
|
-
| OPTIMIZE | `@security-audit` |
|
|
269
|
-
|
|
|
325
|
+
| WRITE / BODY | `@docs-writer` | Draft pieces + structure |
|
|
326
|
+
| OPTIMIZE / SEO | `@docs-writer`, `@security-audit` | Optimization + sensitive-claim check |
|
|
327
|
+
| VERIFY | `@code-reviewer` | Link + frontmatter sanity check |
|