moicle 1.7.0 → 2.1.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 +76 -27
- package/assets/architecture/_shared/severity-levels.md +34 -0
- package/assets/architecture/_shared/stack-detection.md +34 -0
- package/assets/commands/marketing.md +7 -7
- package/assets/skills/docs/sync/SKILL.md +245 -0
- package/assets/skills/docs/write/SKILL.md +274 -0
- package/assets/skills/feature/api/SKILL.md +277 -0
- package/assets/skills/feature/deprecate/SKILL.md +276 -0
- package/assets/skills/feature/new/SKILL.md +273 -0
- package/assets/skills/feature/refactor/SKILL.md +269 -0
- package/assets/skills/fix/hotfix/SKILL.md +233 -0
- package/assets/skills/fix/incident/SKILL.md +360 -0
- package/assets/skills/fix/pr-comment/SKILL.md +186 -0
- package/assets/skills/fix/root-cause/SKILL.md +276 -0
- package/assets/skills/marketing/content/SKILL.md +269 -0
- package/assets/skills/marketing/logo/SKILL.md +252 -0
- package/assets/skills/marketing/seo-blog/SKILL.md +367 -0
- package/assets/skills/marketing/video/SKILL.md +258 -0
- package/assets/skills/research/onboarding/SKILL.md +225 -0
- package/assets/skills/research/spike/SKILL.md +228 -0
- package/assets/skills/research/web/SKILL.md +204 -0
- package/assets/skills/review/architect/SKILL.md +274 -0
- package/assets/skills/review/branch/SKILL.md +277 -0
- package/assets/skills/review/pr/SKILL.md +231 -0
- package/assets/skills/review/tdd/SKILL.md +245 -0
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +2 -2
- package/dist/commands/list.js.map +1 -1
- package/dist/utils/symlink.d.ts +7 -0
- package/dist/utils/symlink.d.ts.map +1 -1
- package/dist/utils/symlink.js +82 -0
- package/dist/utils/symlink.js.map +1 -1
- package/package.json +1 -1
- package/assets/skills/api-integration/SKILL.md +0 -883
- package/assets/skills/architect-review/SKILL.md +0 -393
- package/assets/skills/content-writer/SKILL.md +0 -721
- package/assets/skills/deep-debug/SKILL.md +0 -114
- package/assets/skills/deprecation/SKILL.md +0 -923
- package/assets/skills/documentation/SKILL.md +0 -1333
- package/assets/skills/fix-pr-comment/SKILL.md +0 -283
- package/assets/skills/hotfix/SKILL.md +0 -397
- package/assets/skills/incident-response/SKILL.md +0 -946
- package/assets/skills/logo-design/SKILL.md +0 -477
- package/assets/skills/new-feature/SKILL.md +0 -297
- package/assets/skills/onboarding/SKILL.md +0 -607
- package/assets/skills/pr-review/SKILL.md +0 -620
- package/assets/skills/refactor/SKILL.md +0 -338
- package/assets/skills/research/SKILL.md +0 -124
- package/assets/skills/review-changes/SKILL.md +0 -312
- package/assets/skills/spike/SKILL.md +0 -535
- package/assets/skills/sync-docs/SKILL.md +0 -575
- package/assets/skills/tdd/SKILL.md +0 -828
- package/assets/skills/video-content/SKILL.md +0 -651
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: marketing-logo
|
|
3
|
+
description: Generate comprehensive logo design specifications, brand identity guidelines, and visual concepts. Use when user says "design logo", "create logo", "brand identity", "logo concept", "visual identity".
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Logo Design Skill
|
|
7
|
+
|
|
8
|
+
Produce a logo + brand identity **specification** that a designer can execute (or you can use as a direct prompt to a generative tool). Output is a brand guidelines doc, not finished art.
|
|
9
|
+
|
|
10
|
+
## When to use this skill
|
|
11
|
+
|
|
12
|
+
- ✅ Brand new identity (no existing logo)
|
|
13
|
+
- ✅ Rebrand / refresh of an existing logo + guidelines
|
|
14
|
+
- ✅ Need a deliverable spec for a designer to execute
|
|
15
|
+
- ❌ Just need a quick icon variation → use a design tool directly
|
|
16
|
+
- ❌ Full marketing plan (logo + content + video) → use `/marketing`
|
|
17
|
+
- ❌ Video-specific visuals → use `/marketing:video`
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Workflow
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
DISCOVER → CONCEPT → DESIGN → REFINE → DELIVER
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Phase 1: DISCOVER (30 min)
|
|
30
|
+
|
|
31
|
+
**Goal:** capture brand intent before sketching.
|
|
32
|
+
|
|
33
|
+
### Discovery brief
|
|
34
|
+
|
|
35
|
+
Ask the user (skip what's known):
|
|
36
|
+
|
|
37
|
+
| Field | Example |
|
|
38
|
+
|-------|---------|
|
|
39
|
+
| Name + tagline | "Acme — DevOps for indie teams" |
|
|
40
|
+
| 3-5 personality adjectives | "modern, technical, irreverent, sharp, friendly" |
|
|
41
|
+
| Primary audience | "Solo / small-team backend engineers" |
|
|
42
|
+
| Industry | "Developer tools / SaaS" |
|
|
43
|
+
| Competitors (3-5) | + 1 line each on what their logo says about them |
|
|
44
|
+
| Style direction (pick 1-2) | minimal / wordmark / monogram / abstract mark / illustrative / mascot |
|
|
45
|
+
| What to AVOID | "no cliché cloud icons, no gradients on the mark" |
|
|
46
|
+
| Where it lives | favicon + GitHub avatar + landing hero + dark / light themes + print |
|
|
47
|
+
| Color hints | "must work in single-color print + on dark UI" |
|
|
48
|
+
| Budget for the brand | "MVP — logo + 1 palette + 2 fonts" vs "full system" |
|
|
49
|
+
|
|
50
|
+
### Gate
|
|
51
|
+
- [ ] Personality adjectives captured (forces concept differentiation)
|
|
52
|
+
- [ ] Competitor scan done (don't accidentally copy)
|
|
53
|
+
- [ ] Style direction narrowed to 1-2
|
|
54
|
+
- [ ] Avoid-list captured
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Phase 2: CONCEPT — propose 3 directions
|
|
59
|
+
|
|
60
|
+
**Goal:** present 3 *distinct* concepts. Same concept in 3 colors ≠ 3 concepts.
|
|
61
|
+
|
|
62
|
+
Each concept must have:
|
|
63
|
+
|
|
64
|
+
```markdown
|
|
65
|
+
## Concept {N}: {short name}
|
|
66
|
+
|
|
67
|
+
**Direction:** {wordmark / monogram / abstract mark / etc.}
|
|
68
|
+
**Rationale:** Why this matches the brand personality + audience. Cite 2-3 adjectives.
|
|
69
|
+
**Differentiation:** What competitor it does NOT look like, and why that matters.
|
|
70
|
+
**ASCII sketch** (rough — describes shape, not pixel-perfect):
|
|
71
|
+
```
|
|
72
|
+
___________
|
|
73
|
+
| A C M E |
|
|
74
|
+
|___________|
|
|
75
|
+
```
|
|
76
|
+
**Inspiration:** 2-3 reference links (existing logos, styles)
|
|
77
|
+
**Risks:** What could go wrong (e.g., "monogram unreadable below 24px")
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Concept variety rules
|
|
81
|
+
- Different *form* (wordmark vs mark vs combination)
|
|
82
|
+
- Different *feel* (geometric vs hand-drawn vs typographic)
|
|
83
|
+
- Different *complexity* (minimal vs detailed)
|
|
84
|
+
|
|
85
|
+
### Gate
|
|
86
|
+
- [ ] 3 concepts presented
|
|
87
|
+
- [ ] Each has rationale + differentiation + risk
|
|
88
|
+
- [ ] **User selected ONE** (or asked for hybrid — repeat phase)
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Phase 3: DESIGN — flesh out the chosen concept
|
|
93
|
+
|
|
94
|
+
**Goal:** produce specifications a designer can build.
|
|
95
|
+
|
|
96
|
+
### 3.1 Logo construction
|
|
97
|
+
|
|
98
|
+
```markdown
|
|
99
|
+
### Logo: {name}
|
|
100
|
+
|
|
101
|
+
**Lockup**
|
|
102
|
+
- Primary: {wordmark / mark / mark + wordmark side-by-side / stacked}
|
|
103
|
+
- Secondary (when primary doesn't fit): {variant}
|
|
104
|
+
- Icon-only (favicon, avatar): {variant}
|
|
105
|
+
|
|
106
|
+
**Geometry**
|
|
107
|
+
- Grid: {e.g., "8-unit grid, mark fits in 8x8 square"}
|
|
108
|
+
- Proportions: {e.g., "wordmark cap-height = 5 units; mark = 8 units; gap = 2 units"}
|
|
109
|
+
|
|
110
|
+
**Clear space**
|
|
111
|
+
- Minimum: {e.g., "1 cap-height on all sides"}
|
|
112
|
+
|
|
113
|
+
**Minimum size**
|
|
114
|
+
- Digital: {e.g., "24px height"}
|
|
115
|
+
- Print: {e.g., "8mm height"}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### 3.2 Color palette
|
|
119
|
+
|
|
120
|
+
Pick a primary + secondary + neutrals. Provide every color in:
|
|
121
|
+
- HEX, RGB, HSL
|
|
122
|
+
- CMYK (for print)
|
|
123
|
+
- WCAG AA contrast against white and against black (note pass / fail)
|
|
124
|
+
- Tailwind variable name (if relevant)
|
|
125
|
+
|
|
126
|
+
```markdown
|
|
127
|
+
| Token | HEX | RGB | HSL | Use |
|
|
128
|
+
|-------|-----|-----|-----|-----|
|
|
129
|
+
| `--brand-primary` | #0F172A | 15,23,42 | 222 47% 11% | logo, headlines |
|
|
130
|
+
| `--brand-accent` | #14B8A6 | 20,184,166 | 173 80% 40% | CTA, links |
|
|
131
|
+
| `--neutral-fg` | #1F2937 | 31,41,55 | 220 26% 14% | body text |
|
|
132
|
+
| `--neutral-bg` | #F8FAFC | 248,250,252 | 210 40% 98% | page bg |
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### 3.3 Typography
|
|
136
|
+
|
|
137
|
+
Pick 1 display + 1 body font (or 1 font in 2 weights). Note:
|
|
138
|
+
- Family + fallback stack
|
|
139
|
+
- Weights used (display, body, light)
|
|
140
|
+
- Pairing rationale (1 line)
|
|
141
|
+
- License (open / Google Fonts / commercial)
|
|
142
|
+
|
|
143
|
+
### 3.4 Voice
|
|
144
|
+
- 3 voice attributes (e.g., "direct, witty, never corporate-speak")
|
|
145
|
+
- 3 do / 3 don't examples (1 line each)
|
|
146
|
+
|
|
147
|
+
### Gate
|
|
148
|
+
- [ ] All lockup variants specified
|
|
149
|
+
- [ ] Palette has WCAG contrast notes
|
|
150
|
+
- [ ] Typography choice has rationale + license
|
|
151
|
+
- [ ] Voice has do/don't examples
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Phase 4: REFINE
|
|
156
|
+
|
|
157
|
+
**Goal:** test the design against real use, iterate.
|
|
158
|
+
|
|
159
|
+
### Test scenarios (write down result for each)
|
|
160
|
+
- [ ] Favicon at 16×16 — still recognizable?
|
|
161
|
+
- [ ] On dark background — does it still work?
|
|
162
|
+
- [ ] Single-color print (black-only fax test) — still readable?
|
|
163
|
+
- [ ] Next to 2-3 competitor logos — does it stand out?
|
|
164
|
+
- [ ] At 100% scale on hero — does it carry the page?
|
|
165
|
+
|
|
166
|
+
### Feedback loop
|
|
167
|
+
- Present to user with each scenario
|
|
168
|
+
- Capture changes requested
|
|
169
|
+
- If >2 rounds of changes → consider re-concepting (Phase 2)
|
|
170
|
+
|
|
171
|
+
### Gate
|
|
172
|
+
- [ ] All 5 scenarios tested
|
|
173
|
+
- [ ] User approved final version
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Phase 5: DELIVER — brand guidelines doc
|
|
178
|
+
|
|
179
|
+
**Goal:** ship a single doc + asset list a designer / dev can use.
|
|
180
|
+
|
|
181
|
+
### `brand-guidelines.md` skeleton
|
|
182
|
+
|
|
183
|
+
```markdown
|
|
184
|
+
# {Brand} Brand Guidelines
|
|
185
|
+
|
|
186
|
+
## Logo
|
|
187
|
+
- {Primary, secondary, icon lockups as files: SVG + PNG}
|
|
188
|
+
- Clear space + min size rules
|
|
189
|
+
- Wrong uses (with examples: don't recolor, don't squish, don't add effects)
|
|
190
|
+
|
|
191
|
+
## Color
|
|
192
|
+
- Token table from Phase 3.2
|
|
193
|
+
- Usage rules (when primary vs accent)
|
|
194
|
+
- Accessibility (contrast notes)
|
|
195
|
+
|
|
196
|
+
## Typography
|
|
197
|
+
- Stack from Phase 3.3
|
|
198
|
+
- Hierarchy: H1/H2/H3/body sizes
|
|
199
|
+
- Web vs print
|
|
200
|
+
|
|
201
|
+
## Voice
|
|
202
|
+
- From Phase 3.4
|
|
203
|
+
- Sample headline + body + CTA copy
|
|
204
|
+
|
|
205
|
+
## Examples
|
|
206
|
+
- 1 hero, 1 card, 1 button shown with the brand applied
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### Asset checklist (what to hand to designer / dev)
|
|
210
|
+
|
|
211
|
+
- [ ] `logo-primary.svg` + `logo-primary.png` (1x, 2x, 4x)
|
|
212
|
+
- [ ] `logo-secondary.svg` + `.png`
|
|
213
|
+
- [ ] `logo-mark.svg` + `.png`
|
|
214
|
+
- [ ] `favicon.ico` (16, 32, 48), `apple-touch-icon.png` (180×180), `og-image.png` (1200×630)
|
|
215
|
+
- [ ] Social avatars: square 400×400 + cover per platform (Twitter 1500×500, LinkedIn 1128×191, etc.)
|
|
216
|
+
- [ ] Color tokens: `colors.css` (CSS variables) + `tailwind.config.js` snippet (if Tailwind)
|
|
217
|
+
- [ ] Brand guidelines PDF or `.md`
|
|
218
|
+
|
|
219
|
+
### Gate
|
|
220
|
+
- [ ] Guidelines doc written
|
|
221
|
+
- [ ] Asset checklist exists (even if generation is by a designer)
|
|
222
|
+
- [ ] Developer-ready tokens included (CSS / Tailwind)
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## Hard Rules
|
|
227
|
+
|
|
228
|
+
- **3 *distinct* concepts in Phase 2** — same concept in 3 colors = lazy
|
|
229
|
+
- **WCAG AA contrast minimum** on text colors
|
|
230
|
+
- **Mark must read at 16px** — if it doesn't, redesign, don't compromise
|
|
231
|
+
- **No gradient on the primary mark** — gradients don't print, don't fax, don't embroider well
|
|
232
|
+
- **License-clean fonts only** — no "found on the internet" type
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Related Skills
|
|
237
|
+
|
|
238
|
+
| When | Use |
|
|
239
|
+
|------|-----|
|
|
240
|
+
| Full marketing plan (logo + content + video) | `/marketing` |
|
|
241
|
+
| Write content with the brand | `/marketing:content` |
|
|
242
|
+
| Create video with the brand | `/marketing:video` |
|
|
243
|
+
| Document brand guidelines as a doc | `/docs:write` |
|
|
244
|
+
|
|
245
|
+
## Recommended Agents
|
|
246
|
+
|
|
247
|
+
| Phase | Agent | Purpose |
|
|
248
|
+
|-------|-------|---------|
|
|
249
|
+
| DISCOVER | `@docs-writer` | Capture brand brief |
|
|
250
|
+
| CONCEPT | `@clean-architect` | Structure the system |
|
|
251
|
+
| DESIGN | `@docs-writer` | Spec documents |
|
|
252
|
+
| DELIVER | `@docs-writer` | Brand guidelines doc |
|
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: marketing-seo-blog
|
|
3
|
+
description: Write an evergreen blog post optimized for both Google Search AND AI tools (ChatGPT, Bing/Copilot, Perplexity). Answer-first, intent-classified, overlap-audited. Use when user says "write seo blog", "seo blog", "evergreen post", "compare post", "trust post", "glossary post", "blog for AI to recommend", "search + ai".
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SEO + AI Blog Writer
|
|
7
|
+
|
|
8
|
+
Write **one** evergreen blog post that ranks on traditional search AND is easy for AI systems to cite or recommend. Intent-first, answer-first, overlap-audited.
|
|
9
|
+
|
|
10
|
+
## When to use this skill
|
|
11
|
+
|
|
12
|
+
- ✅ Writing a single evergreen blog post (entity / trust / compare / glossary / use-case / FAQ)
|
|
13
|
+
- ✅ Updating an existing evergreen post that has drifted
|
|
14
|
+
- ✅ Replacing a thin / outdated post with a stronger version on the same intent
|
|
15
|
+
- ❌ Multi-post content plan / calendar / strategy → use `/marketing:content`
|
|
16
|
+
- ❌ Changelog / feature launch / release announcement → write manually or use a feature-blog template
|
|
17
|
+
- ❌ Time-sensitive news / event post → not evergreen, different rules
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Core principle
|
|
22
|
+
|
|
23
|
+
**Don't write a blog "to fill the calendar." Write the answer to a question users actually ask** on Search or to an AI.
|
|
24
|
+
|
|
25
|
+
- Every post must let an AI model answer at least one clear intent
|
|
26
|
+
- One strong intent = **one canonical post**. Don't write a second post on the same intent — update the first
|
|
27
|
+
- If existing post is stale → fix it; don't pile a new post on top
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Workflow
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
1 INTENT → 1.5 OVERLAP AUDIT → 2 RESEARCH → 3 FILE → 4 FRONTMATTER → 5 BODY → 6 PATTERN → 7 RULES → 8 LINKS → 9 VERIFY → 10 REPORT
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Step 1: Classify intent
|
|
40
|
+
|
|
41
|
+
Pick **one** category. Don't write a hybrid — split into two posts if needed.
|
|
42
|
+
|
|
43
|
+
| # | Intent | Example queries |
|
|
44
|
+
|---|--------|-----------------|
|
|
45
|
+
| 1 | **Entity** | "What is {Brand}", "How does {Brand} work" |
|
|
46
|
+
| 2 | **Trust** | "Is {Brand} legit", "Why is {Brand} {claim}" |
|
|
47
|
+
| 3 | **Compare** | "{Brand} vs {Competitor}", "Best {category} apps in {region}" |
|
|
48
|
+
| 4 | **Glossary** | "What is {term}", "{term} explained" |
|
|
49
|
+
| 5 | **Use case** | "How to {action} with {Brand}", "How to {achieve outcome}" |
|
|
50
|
+
| 6 | **Problem / FAQ** | "Why is my {thing} not working", "Why did {unexpected outcome} happen" |
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Step 1.5: Overlap audit (mandatory)
|
|
55
|
+
|
|
56
|
+
**Before writing anything new**, inventory existing posts in the blog folder.
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Adapt path to project — common: content/blog/, app/blog/, docs/blog/
|
|
60
|
+
find {blog_dir} -name "*.md" -maxdepth 2 | sort
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
For each existing post, extract from frontmatter or first 30 lines:
|
|
64
|
+
- slug
|
|
65
|
+
- primary intent (which of the 6 above)
|
|
66
|
+
- funnel stage (awareness / consideration / decision)
|
|
67
|
+
- evergreen or seasonal
|
|
68
|
+
- any claims that are now stale or off-brand
|
|
69
|
+
|
|
70
|
+
Then compare your planned post against the inventory.
|
|
71
|
+
|
|
72
|
+
### Decision rules
|
|
73
|
+
|
|
74
|
+
| Situation | Action |
|
|
75
|
+
|-----------|--------|
|
|
76
|
+
| New post overlaps >60% intent with existing post | **Do not create new.** Either update the existing one OR refocus both to clearly distinct intents |
|
|
77
|
+
| Existing post has stale claims (deprecated platform, old positioning, unsafe wording) | Update the existing post **first or in the same batch** — never pretend the issue isn't there |
|
|
78
|
+
| New intent is genuinely uncovered | Proceed to Step 2 |
|
|
79
|
+
|
|
80
|
+
### Examples
|
|
81
|
+
✅ Correct: `what-is-brand.md` (entity) + `how-to-use-brand.md` (how-to) — different intents.
|
|
82
|
+
❌ Wrong: two posts both answering "What is {Brand}" — pick one as canonical, update it.
|
|
83
|
+
|
|
84
|
+
### Gate
|
|
85
|
+
- [ ] Inventory of existing posts read
|
|
86
|
+
- [ ] No >60% overlap, OR plan to update existing instead of writing new
|
|
87
|
+
- [ ] Stale-claim audit done (or N/A noted)
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Step 2: Research (short but solid)
|
|
92
|
+
|
|
93
|
+
If the post mentions current facts, third parties, or specific numbers — **verify before writing**.
|
|
94
|
+
|
|
95
|
+
### Verify
|
|
96
|
+
- Competitor / partner / third-party facts
|
|
97
|
+
- Stats, dates, policies (these go stale fast)
|
|
98
|
+
- App Store / Google Play / platform-specific claims
|
|
99
|
+
- Pricing, fees, rates
|
|
100
|
+
|
|
101
|
+
### Source priority
|
|
102
|
+
1. Official source from the project (in-repo docs, official site)
|
|
103
|
+
2. Official source from the third party (their docs / site)
|
|
104
|
+
3. Project marketing strategy docs (if any)
|
|
105
|
+
4. Reputable third-party sources, recent (≤1 year for pricing/stats)
|
|
106
|
+
|
|
107
|
+
### Hard rules
|
|
108
|
+
- **No invented benchmarks.** If you don't have a source, don't claim the number
|
|
109
|
+
- **No invented comparisons.** Compare only what's verifiable
|
|
110
|
+
- For evergreen posts, prefer durable claims over snapshot stats
|
|
111
|
+
|
|
112
|
+
### Gate
|
|
113
|
+
- [ ] Every non-trivial factual claim has a source
|
|
114
|
+
- [ ] Sources noted (in draft comments) so reviewer can verify
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Step 3: File output
|
|
119
|
+
|
|
120
|
+
```text
|
|
121
|
+
{blog_dir}/{slug}.md
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Slug rules
|
|
125
|
+
- Lowercase
|
|
126
|
+
- Hyphen-separated (no underscores, no spaces)
|
|
127
|
+
- For non-English projects: language convention (e.g., Vietnamese without diacritics, kebab-case)
|
|
128
|
+
- Slug must map to **intent**, not to a marketing campaign
|
|
129
|
+
|
|
130
|
+
### Examples
|
|
131
|
+
- `what-is-{brand}.md` (entity)
|
|
132
|
+
- `is-{brand}-legit.md` (trust)
|
|
133
|
+
- `{brand}-vs-{competitor}.md` (compare)
|
|
134
|
+
- `why-is-my-order-not-tracked.md` (problem)
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Step 4: Frontmatter
|
|
139
|
+
|
|
140
|
+
```yaml
|
|
141
|
+
---
|
|
142
|
+
title: "Title that matches the real query"
|
|
143
|
+
description: "140-160 chars. Tell the reader what this post does for them — not marketing fluff."
|
|
144
|
+
date: "YYYY-MM-DD"
|
|
145
|
+
author: "{Brand} Team"
|
|
146
|
+
image: "/images/blog/{slug}.svg"
|
|
147
|
+
category: "<from project's category enum>"
|
|
148
|
+
tags: ["<brand>", "<topic>", "<intent>"]
|
|
149
|
+
---
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Picking `category`
|
|
153
|
+
Use the project's existing category enum — never invent new ones. Common:
|
|
154
|
+
- `guide` / `tutorial` for entity, glossary, use-case, FAQ
|
|
155
|
+
- `tips` for optimization / case-based
|
|
156
|
+
- `compare` / `review` for comparison posts
|
|
157
|
+
- `changelog` only for product update posts (which this skill does NOT handle)
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## Step 5: Body structure (answer-first)
|
|
162
|
+
|
|
163
|
+
```markdown
|
|
164
|
+
{2-4 sentences directly answering the question in the title — no warm-up, no story}
|
|
165
|
+
|
|
166
|
+
## TL;DR
|
|
167
|
+
|
|
168
|
+
- Key takeaway 1
|
|
169
|
+
- Key takeaway 2
|
|
170
|
+
- Key takeaway 3
|
|
171
|
+
|
|
172
|
+
## {Primary heading 1 — the main answer expanded}
|
|
173
|
+
|
|
174
|
+
...
|
|
175
|
+
|
|
176
|
+
## {Primary heading 2 — supporting context}
|
|
177
|
+
|
|
178
|
+
...
|
|
179
|
+
|
|
180
|
+
## When to choose / use / consider {Brand}
|
|
181
|
+
|
|
182
|
+
...
|
|
183
|
+
|
|
184
|
+
## Important caveats
|
|
185
|
+
|
|
186
|
+
...
|
|
187
|
+
|
|
188
|
+
## FAQ
|
|
189
|
+
|
|
190
|
+
### {Question 1 — phrased exactly as users ask}
|
|
191
|
+
{Direct answer, 2-4 sentences}
|
|
192
|
+
|
|
193
|
+
### {Question 2}
|
|
194
|
+
{...}
|
|
195
|
+
|
|
196
|
+
## Conclusion / Next step
|
|
197
|
+
|
|
198
|
+
...
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
**Why this structure works for AI systems:** TL;DR + direct answer + FAQ blocks are the highest-cited patterns. AI tools quote concise answers; long-winded intros get skipped.
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Step 6: Pattern per intent type
|
|
206
|
+
|
|
207
|
+
### A. Entity / Trust
|
|
208
|
+
Must answer:
|
|
209
|
+
- What is {Brand}
|
|
210
|
+
- Who is it for
|
|
211
|
+
- Where does the {core value} come from (be specific — sources, business model, partnerships)
|
|
212
|
+
- Who is the company / team behind it
|
|
213
|
+
- Does it have support / app stores / community / public presence
|
|
214
|
+
|
|
215
|
+
### B. Compare
|
|
216
|
+
Must include a real comparison table:
|
|
217
|
+
|
|
218
|
+
```markdown
|
|
219
|
+
| Criterion | {Brand} | {Competitor A} | {Competitor B} |
|
|
220
|
+
|-----------|---------|---------------|---------------|
|
|
221
|
+
| Coverage | ... | ... | ... |
|
|
222
|
+
| Pricing / fees | ... | ... | ... |
|
|
223
|
+
| Strengths | ... | ... | ... |
|
|
224
|
+
| Best for | ... | ... | ... |
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
Rules:
|
|
228
|
+
- **Fair** — no dunking without evidence
|
|
229
|
+
- State **when each option fits better** — not "we're best at everything"
|
|
230
|
+
- Verify every cell (Step 2)
|
|
231
|
+
|
|
232
|
+
### C. Glossary
|
|
233
|
+
Must:
|
|
234
|
+
- Define the term in 1-2 sentences at the top
|
|
235
|
+
- Give a concrete example (not abstract)
|
|
236
|
+
- Use end-user language, not insider jargon
|
|
237
|
+
- Link out to a related use-case / guide post
|
|
238
|
+
|
|
239
|
+
### D. Use case / How-to
|
|
240
|
+
Must:
|
|
241
|
+
- Numbered steps (≤7 main steps)
|
|
242
|
+
- Screenshots or visuals where relevant
|
|
243
|
+
- Prerequisites listed before the steps
|
|
244
|
+
- Expected outcome stated
|
|
245
|
+
|
|
246
|
+
### E. Problem / FAQ
|
|
247
|
+
Must:
|
|
248
|
+
- Describe the symptom (so users searching the symptom land here)
|
|
249
|
+
- List common causes ordered by likelihood
|
|
250
|
+
- Provide a fix per cause
|
|
251
|
+
- State when to escalate to human support
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## Step 7: SEO + AI optimization rules
|
|
256
|
+
|
|
257
|
+
- **H1 = the real query**, not a marketing headline
|
|
258
|
+
- **First paragraph answers directly** — no warm-up, no anecdote, no "in this article we will…"
|
|
259
|
+
- **Headings tell the story** — a reader who only scans H2s should understand the whole post
|
|
260
|
+
- **Tables and lists** beat paragraphs for scannable content
|
|
261
|
+
- **Internal links** to related posts and key product pages (next step)
|
|
262
|
+
- **One consistent positioning sentence** for the brand across all posts
|
|
263
|
+
- **No keyword stuffing** — write for humans first
|
|
264
|
+
- **No filler** — every paragraph earns its place
|
|
265
|
+
- **Sensitive claims need evidence** or safe wording (e.g., "may", "in some cases")
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## Step 8: Internal link rules
|
|
270
|
+
|
|
271
|
+
Minimum **2-4 internal links** per post:
|
|
272
|
+
|
|
273
|
+
- 1 link to a core product / about page (`/about`, `/product`, `/guide`)
|
|
274
|
+
- 1 link to a support / help page (`/help`, `/faq`)
|
|
275
|
+
- 1-2 links to related foundational blog posts
|
|
276
|
+
|
|
277
|
+
Anchor text:
|
|
278
|
+
- Natural, descriptive
|
|
279
|
+
- Vary phrasing — don't repeat exact-match anchors
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## Step 9: Verify (pre-publish checklist)
|
|
284
|
+
|
|
285
|
+
- [ ] Primary intent clearly distinct from existing posts (Step 1.5)
|
|
286
|
+
- [ ] Title matches the real query users would search
|
|
287
|
+
- [ ] First paragraph answers directly (no warm-up)
|
|
288
|
+
- [ ] Has table / FAQ / numbered steps where the intent calls for them
|
|
289
|
+
- [ ] ≥2 internal links, with natural anchor text
|
|
290
|
+
- [ ] No unverified claims left in (no "studies show" without a study)
|
|
291
|
+
- [ ] Frontmatter `category` matches the project's existing enum
|
|
292
|
+
- [ ] Sitemap updated (if project requires)
|
|
293
|
+
- [ ] Image / OG image referenced and exists
|
|
294
|
+
- [ ] Reading level reasonable for the audience (run through Hemingway / similar)
|
|
295
|
+
|
|
296
|
+
Quick checks:
|
|
297
|
+
```bash
|
|
298
|
+
ls {blog_dir}/{slug}.md
|
|
299
|
+
head -30 {blog_dir}/{slug}.md
|
|
300
|
+
{linter for markdown / mdx if project has one}
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## Step 10: Report
|
|
306
|
+
|
|
307
|
+
```markdown
|
|
308
|
+
## SEO Blog Post: {title}
|
|
309
|
+
|
|
310
|
+
### File
|
|
311
|
+
- `{blog_dir}/{slug}.md`
|
|
312
|
+
|
|
313
|
+
### Intent
|
|
314
|
+
- Category: {entity / trust / compare / glossary / use-case / problem}
|
|
315
|
+
- Primary query: "{the search query this targets}"
|
|
316
|
+
|
|
317
|
+
### Frontmatter
|
|
318
|
+
- title: ...
|
|
319
|
+
- category: ...
|
|
320
|
+
- tags: [...]
|
|
321
|
+
|
|
322
|
+
### Key internal links
|
|
323
|
+
- {anchor → /path}
|
|
324
|
+
- {anchor → /path}
|
|
325
|
+
|
|
326
|
+
### Overlap audit
|
|
327
|
+
- Checked: {N existing posts}
|
|
328
|
+
- Decision: {NEW / UPDATED `existing-slug` / REFOCUSED}
|
|
329
|
+
|
|
330
|
+
### Items needing user review
|
|
331
|
+
- {claim X — verify source}
|
|
332
|
+
- {comparison cell Y — confirm with product team}
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## Hard Rules
|
|
338
|
+
|
|
339
|
+
- **One canonical post per intent** — never write a duplicate, always update the existing one
|
|
340
|
+
- **Overlap audit before writing** — Step 1.5 is not optional
|
|
341
|
+
- **Answer-first structure** — TL;DR + direct answer in the first paragraph
|
|
342
|
+
- **No invented facts / benchmarks / comparisons** — verify or omit
|
|
343
|
+
- **Stale-claim audit** — if you find an outdated existing post, fix it in the same batch
|
|
344
|
+
- **Slug = intent**, not campaign or date
|
|
345
|
+
- **Update sitemap** when adding new posts (if project requires it)
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
## Related Skills
|
|
350
|
+
|
|
351
|
+
| When | Use |
|
|
352
|
+
|------|-----|
|
|
353
|
+
| Multi-post content plan / calendar / strategy | `/marketing:content` |
|
|
354
|
+
| Brand voice / visual identity setup first | `/marketing:logo` |
|
|
355
|
+
| Video / shorts version of the post | `/marketing:video` |
|
|
356
|
+
| Full go-to-market plan (logo + content + video) | `/marketing` command |
|
|
357
|
+
| Writing technical project docs (not blog) | `/docs:write` |
|
|
358
|
+
|
|
359
|
+
## Recommended Agents
|
|
360
|
+
|
|
361
|
+
| Step | Agent | Purpose |
|
|
362
|
+
|------|-------|---------|
|
|
363
|
+
| 1.5 OVERLAP | `@docs-writer` | Inventory + cluster analysis |
|
|
364
|
+
| 2 RESEARCH | `@docs-writer` | Source verification |
|
|
365
|
+
| 5 BODY | `@docs-writer` | Drafting + structure |
|
|
366
|
+
| 7 SEO + AI | `@docs-writer` | Optimization pass |
|
|
367
|
+
| 9 VERIFY | `@code-reviewer` | Link + frontmatter sanity check |
|