moicle 2.3.1 → 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.
Files changed (32) hide show
  1. package/README.md +36 -49
  2. package/assets/commands/marketing.md +6 -6
  3. package/assets/skills/docs/sync/SKILL.md +195 -157
  4. package/assets/skills/feature/build/SKILL.md +891 -0
  5. package/assets/skills/feature/track/SKILL.md +8 -8
  6. package/assets/skills/fix/bug/SKILL.md +449 -0
  7. package/assets/skills/fix/incident/SKILL.md +6 -6
  8. package/assets/skills/marketing/brand/SKILL.md +304 -0
  9. package/assets/skills/marketing/content/SKILL.md +199 -141
  10. package/assets/skills/research/explore/SKILL.md +392 -0
  11. package/assets/skills/review/code/SKILL.md +622 -0
  12. package/dist/commands/install/usage.js +2 -2
  13. package/dist/commands/install/usage.js.map +1 -1
  14. package/package.json +1 -1
  15. package/assets/skills/docs/write/SKILL.md +0 -274
  16. package/assets/skills/feature/api/SKILL.md +0 -277
  17. package/assets/skills/feature/deprecate/SKILL.md +0 -276
  18. package/assets/skills/feature/new/SKILL.md +0 -273
  19. package/assets/skills/feature/refactor/SKILL.md +0 -269
  20. package/assets/skills/fix/hotfix/SKILL.md +0 -233
  21. package/assets/skills/fix/pr-comment/SKILL.md +0 -186
  22. package/assets/skills/fix/root-cause/SKILL.md +0 -276
  23. package/assets/skills/marketing/logo/SKILL.md +0 -252
  24. package/assets/skills/marketing/seo-blog/SKILL.md +0 -367
  25. package/assets/skills/marketing/video/SKILL.md +0 -258
  26. package/assets/skills/research/onboarding/SKILL.md +0 -225
  27. package/assets/skills/research/spike/SKILL.md +0 -228
  28. package/assets/skills/research/web/SKILL.md +0 -204
  29. package/assets/skills/review/architect/SKILL.md +0 -274
  30. package/assets/skills/review/branch/SKILL.md +0 -277
  31. package/assets/skills/review/pr/SKILL.md +0 -231
  32. package/assets/skills/review/tdd/SKILL.md +0 -245
@@ -1,22 +1,36 @@
1
1
  ---
2
2
  name: marketing-content
3
- description: Create content writing strategy including blog posts, social media, newsletters, and SEO content plans. Use when user says "write content", "content strategy", "blog post", "social media content", "content plan", "seo content", "newsletter".
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 Writer
7
+ # Content Writing Workflow
7
8
 
8
- Workflow for creating content strategy: audience research, content pillars, SEO blog posts, social media plans, newsletters.
9
+ One skill, two modes: build a multi-channel content strategy, or write one evergreen post really well.
9
10
 
10
- ## When to use this skill
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 API / project documentationuse `/docs-write` or `/docs-sync`
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
- **Goal:** understand audience, competitors, and SEO landscape.
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** results for 3–5 target keywords — what content ranks?
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 (skip fields already covered in conversation)
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 defined with audience rationale
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
- **Goal:** draft the actual content. One format at a time.
88
+ One format at a time.
93
89
 
94
90
  ### Blog post structure (long-form, SEO)
95
-
96
91
  ```
97
- TITLE (≤60 chars, includes primary keyword)
98
- META DESCRIPTION (≤155 chars, includes primary keyword + CTA)
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 — your main argument / approach
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
- 3–7 posts each ≤280 chars
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
- LINKS (3–5 curated, with 1-line why-it-matters)
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
- - **Active voice** ("the API returns" not "is returned by the API")
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's structure
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, includes primary keyword
171
- - [ ] Meta description ≤155 chars
172
- - [ ] H1 matches search intent
173
- - [ ] H2/H3 use related keywords naturally
174
- - [ ] Alt text on all images
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 pulling key insights + link to blog |
197
- | LinkedIn | 1 long-form post (200–500 words), no link in body (link in comments) |
198
- | Dev.to / Hashnode | Republish blog with canonical link to original |
199
- | Reddit | Comment in relevant thread first, then share post only if community allows |
200
- | Newsletter | Featured story or short blurb + link |
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 chosen channel
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
- ## Final Report
163
+ # Mode POST
216
164
 
217
- ```markdown
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
- ### Strategy
221
- - Pillars: {list}
222
- - Audience: {one line}
223
- - Goal: {primary}
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
- ### Calendar (next 4 weeks)
226
- {table}
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
- ### Pieces Drafted
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
- ## Hard Rules
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
- - **One idea per piece** if you have two, write two pieces
243
- - **No filler** every paragraph earns its place
244
- - **No keyword stuffing** write for humans first, search engines second
245
- - **Skip a slot rather than post filler**
246
- - **Iterate based on data** kill what doesn't work after 3 attempts
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 + colors) | `/marketing-logo` |
255
- | Creating video scripts / storyboards | `/marketing-video` |
256
- | Building a full marketing plan | `/marketing` (combines all three) |
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` | Document research findings |
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` | Check for sensitive content / claims |
269
- | DISTRIBUTE | `@docs-writer` | Channel adaptations |
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 |