claude-flow-novice 2.14.3 → 2.14.5

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 (194) hide show
  1. package/.claude/commands/CFN_LOOP_TASK_MODE.md +4 -47
  2. package/.claude/commands/seo/SEO_TASK_MODE.md +892 -0
  3. package/.claude/commands/seo/seo-blog.md +428 -0
  4. package/.claude/commands/seo/seo-landing.md +91 -0
  5. package/.claude/commands/seo/seo-product.md +104 -0
  6. package/.claude/skills/cfn-redis-coordination/demos/test-cancel-swarm.sh +0 -276
  7. package/claude-assets/agents/cfn-dev-team/coordinators/epic-creator.md +120 -0
  8. package/claude-assets/agents/cfn-seo-team/AGENT_CREATION_REPORT.md +481 -0
  9. package/claude-assets/agents/cfn-seo-team/DELEGATION_MATRIX.md +371 -0
  10. package/claude-assets/agents/cfn-seo-team/HUMANIZER_PROMPTS.md +536 -0
  11. package/claude-assets/agents/cfn-seo-team/INTEGRATION_REQUIREMENTS.md +642 -0
  12. package/claude-assets/agents/cfn-seo-team/cfn-seo-coordinator.md +414 -0
  13. package/claude-assets/agents/cfn-seo-team/competitive-seo-analyst.md +423 -0
  14. package/claude-assets/agents/cfn-seo-team/content-atomization-specialist.md +580 -0
  15. package/claude-assets/agents/cfn-seo-team/content-seo-strategist.md +245 -0
  16. package/claude-assets/agents/cfn-seo-team/eeat-content-auditor.md +389 -0
  17. package/claude-assets/agents/cfn-seo-team/geo-optimization-expert.md +269 -0
  18. package/claude-assets/agents/cfn-seo-team/link-building-specialist.md +291 -0
  19. package/claude-assets/agents/cfn-seo-team/local-seo-optimizer.md +333 -0
  20. package/claude-assets/agents/cfn-seo-team/programmatic-seo-engineer.md +244 -0
  21. package/claude-assets/agents/cfn-seo-team/schema-markup-engineer.md +430 -0
  22. package/claude-assets/agents/cfn-seo-team/seo-analytics-specialist.md +376 -0
  23. package/claude-assets/agents/cfn-seo-team/seo-validators/accessibility-validator.md +565 -0
  24. package/claude-assets/agents/cfn-seo-team/seo-validators/audience-validator.md +484 -0
  25. package/claude-assets/agents/cfn-seo-team/seo-validators/branding-validator.md +452 -0
  26. package/claude-assets/agents/cfn-seo-team/seo-validators/humanizer-validator.md +333 -0
  27. package/claude-assets/agents/cfn-seo-team/technical-seo-specialist.md +228 -0
  28. package/claude-assets/commands/CFN_LOOP_TASK_MODE.md +4 -47
  29. package/claude-assets/commands/seo/SEO_TASK_MODE.md +892 -0
  30. package/claude-assets/commands/seo/seo-blog.md +428 -0
  31. package/claude-assets/commands/seo/seo-landing.md +91 -0
  32. package/claude-assets/commands/seo/seo-product.md +104 -0
  33. package/claude-assets/skills/cfn-redis-coordination/demos/test-cancel-swarm.sh +0 -276
  34. package/claude-assets/skills/seo-orchestration/SKILL.md +292 -0
  35. package/claude-assets/skills/seo-orchestration/orchestrate-seo.sh +566 -0
  36. package/claude-assets/skills/seo-orchestration/orchestrate-seo.sh.backup +755 -0
  37. package/claude-assets/skills/seo-orchestration/validate-consensus.sh +270 -0
  38. package/dist/agents/agent-loader.js +165 -146
  39. package/dist/agents/agent-loader.js.map +1 -1
  40. package/dist/cli/agent-prompt-builder.js +25 -0
  41. package/dist/cli/agent-prompt-builder.js.map +1 -1
  42. package/package.json +1 -1
  43. package/.claude/skills/cfn-redis-coordination/HEARTBEAT.md +0 -57
  44. package/.claude/skills/cfn-redis-coordination/HEARTBEAT_MONITORING.md +0 -267
  45. package/.claude/skills/cfn-redis-coordination/LOGGING.md +0 -260
  46. package/.claude/skills/cfn-redis-coordination/README.md +0 -65
  47. package/.claude/skills/cfn-redis-coordination/SECURITY_REVIEW.md +0 -25
  48. package/.claude/skills/cfn-redis-coordination/SHUTDOWN_HANDLING.md +0 -164
  49. package/.claude/skills/cfn-redis-coordination/SKILL.md +0 -720
  50. package/.claude/skills/cfn-redis-coordination/demos/test-dlq.sh +0 -129
  51. package/.claude/skills/cfn-redis-coordination/demos/test-iteration-feedback.sh +0 -320
  52. package/.claude/skills/cfn-redis-coordination/demos/test-orchestrator.sh +0 -249
  53. package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake-phase4-unix.sh +0 -148
  54. package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake-phase4.sh +0 -163
  55. package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake.sh +0 -138
  56. package/.claude/skills/cfn-redis-coordination/demos/test-quick-fix.sh +0 -81
  57. package/.claude/skills/cfn-redis-coordination/demos/test-quorum-absolute.sh +0 -45
  58. package/.claude/skills/cfn-redis-coordination/demos/test-quorum-fallback.sh +0 -68
  59. package/.claude/skills/cfn-redis-coordination/demos/test-quorum-percentage.sh +0 -56
  60. package/.claude/skills/cfn-redis-coordination/demos/test-quorum-with-retry.sh +0 -81
  61. package/.claude/skills/cfn-redis-coordination/demos/test-quorum.sh +0 -57
  62. package/.claude/skills/cfn-redis-coordination/demos/test-shutdown-handling.sh +0 -187
  63. package/.claude/skills/cfn-redis-coordination/demos/test-shutdown.sh +0 -160
  64. package/.claude/skills/cfn-redis-coordination/demos/test-utils-unix.sh +0 -97
  65. package/.claude/skills/cfn-redis-coordination/demos/test-utils.sh +0 -97
  66. package/.claude/skills/cfn-redis-coordination/demos/test-waiting-mode.sh +0 -59
  67. package/.claude/skills/cfn-redis-coordination/examples/README.md +0 -73
  68. package/.claude/skills/cfn-redis-coordination/examples/grafana-dashboard.json +0 -352
  69. package/.claude/skills/cfn-redis-coordination/examples/hierarchical-pattern.sh +0 -127
  70. package/.claude/skills/cfn-redis-coordination/examples/mesh-pattern.sh +0 -171
  71. package/.claude/skills/cfn-redis-coordination/examples/timeout-handling.sh +0 -227
  72. package/.claude/skills/cfn-redis-coordination/examples/waiting-mode-pattern.sh +0 -239
  73. package/.claude/skills/cfn-redis-coordination/execute-product-owner-decision.sh +0 -258
  74. package/.claude/skills/cfn-redis-coordination/get-agent-timeout.sh +0 -177
  75. package/.claude/skills/cfn-redis-coordination/heartbeat-functions.sh +0 -137
  76. package/.claude/skills/cfn-redis-coordination/heartbeat-protocol.md +0 -106
  77. package/.claude/skills/cfn-redis-coordination/heartbeat.sh +0 -126
  78. package/.claude/skills/cfn-redis-coordination/init-swarm.sh +0 -148
  79. package/.claude/skills/cfn-redis-coordination/invoke-redis-pattern.sh +0 -220
  80. package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh +0 -283
  81. package/.claude/skills/cfn-redis-coordination/list-active-swarms.sh +0 -147
  82. package/.claude/skills/cfn-redis-coordination/log-event.sh +0 -109
  83. package/.claude/skills/cfn-redis-coordination/metrics-export.sh +0 -674
  84. package/.claude/skills/cfn-redis-coordination/metrics-schema.json +0 -66
  85. package/.claude/skills/cfn-redis-coordination/metrics-storage.md +0 -31
  86. package/.claude/skills/cfn-redis-coordination/monitor-cfn-violations.sh +0 -391
  87. package/.claude/skills/cfn-redis-coordination/monitor-heartbeats.sh +0 -101
  88. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop-v3.sh +0 -141
  89. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh +0 -31
  90. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.bak +0 -0
  91. package/.claude/skills/cfn-redis-coordination/priority-wake-mechanism.md +0 -75
  92. package/.claude/skills/cfn-redis-coordination/priority_wake.py +0 -134
  93. package/.claude/skills/cfn-redis-coordination/query-dlq.sh +0 -162
  94. package/.claude/skills/cfn-redis-coordination/query-logs.sh +0 -103
  95. package/.claude/skills/cfn-redis-coordination/redis-pattern.sh +0 -619
  96. package/.claude/skills/cfn-redis-coordination/retrieve-context.sh +0 -58
  97. package/.claude/skills/cfn-redis-coordination/select-specialist-agent.sh +0 -371
  98. package/.claude/skills/cfn-redis-coordination/semantic-match-tfidf.py +0 -252
  99. package/.claude/skills/cfn-redis-coordination/send-heartbeat.sh +0 -165
  100. package/.claude/skills/cfn-redis-coordination/signal.sh +0 -38
  101. package/.claude/skills/cfn-redis-coordination/store-context.sh +0 -86
  102. package/.claude/skills/cfn-redis-coordination/store-epic-context.sh +0 -123
  103. package/.claude/skills/cfn-redis-coordination/test-context-injection.sh +0 -354
  104. package/.claude/skills/cfn-redis-coordination/test-timeout-enforcement.sh +0 -513
  105. package/.claude/skills/cfn-redis-coordination/tests/convert-line-endings.sh +0 -15
  106. package/.claude/skills/cfn-redis-coordination/tests/dlq-functionality-test.sh +0 -102
  107. package/.claude/skills/cfn-redis-coordination/tests/edge-cases-test.sh +0 -99
  108. package/.claude/skills/cfn-redis-coordination/tests/integration-test.sh +0 -170
  109. package/.claude/skills/cfn-redis-coordination/tests/retry-mechanism-test.sh +0 -82
  110. package/.claude/skills/cfn-redis-coordination/tests/run-test-suite.sh +0 -92
  111. package/.claude/skills/cfn-redis-coordination/tests/run-tests.sh +0 -4
  112. package/.claude/skills/cfn-redis-coordination/tests/test-heartbeat-monitoring.sh +0 -418
  113. package/.claude/skills/cfn-redis-coordination/tests/test-heartbeat-simple.sh +0 -124
  114. package/.claude/skills/cfn-redis-coordination/tests/test-primitives.sh +0 -166
  115. package/.claude/skills/cfn-redis-coordination/tests/test-utils.sh +0 -54
  116. package/.claude/skills/cfn-redis-coordination/tests/test_utils.sh +0 -49
  117. package/.claude/skills/cfn-redis-coordination/v2_modularization/core_orchestration.sh +0 -76
  118. package/.claude/skills/cfn-redis-coordination/validate-parameters.sh +0 -492
  119. package/claude-assets/skills/cfn-redis-coordination/HEARTBEAT.md +0 -57
  120. package/claude-assets/skills/cfn-redis-coordination/HEARTBEAT_MONITORING.md +0 -267
  121. package/claude-assets/skills/cfn-redis-coordination/LOGGING.md +0 -260
  122. package/claude-assets/skills/cfn-redis-coordination/README.md +0 -65
  123. package/claude-assets/skills/cfn-redis-coordination/SECURITY_REVIEW.md +0 -25
  124. package/claude-assets/skills/cfn-redis-coordination/SHUTDOWN_HANDLING.md +0 -164
  125. package/claude-assets/skills/cfn-redis-coordination/SKILL.md +0 -720
  126. package/claude-assets/skills/cfn-redis-coordination/demos/test-dlq.sh +0 -129
  127. package/claude-assets/skills/cfn-redis-coordination/demos/test-iteration-feedback.sh +0 -320
  128. package/claude-assets/skills/cfn-redis-coordination/demos/test-orchestrator.sh +0 -249
  129. package/claude-assets/skills/cfn-redis-coordination/demos/test-priority-wake-phase4-unix.sh +0 -148
  130. package/claude-assets/skills/cfn-redis-coordination/demos/test-priority-wake-phase4.sh +0 -163
  131. package/claude-assets/skills/cfn-redis-coordination/demos/test-priority-wake.sh +0 -138
  132. package/claude-assets/skills/cfn-redis-coordination/demos/test-quick-fix.sh +0 -81
  133. package/claude-assets/skills/cfn-redis-coordination/demos/test-quorum-absolute.sh +0 -45
  134. package/claude-assets/skills/cfn-redis-coordination/demos/test-quorum-fallback.sh +0 -68
  135. package/claude-assets/skills/cfn-redis-coordination/demos/test-quorum-percentage.sh +0 -56
  136. package/claude-assets/skills/cfn-redis-coordination/demos/test-quorum-with-retry.sh +0 -81
  137. package/claude-assets/skills/cfn-redis-coordination/demos/test-quorum.sh +0 -57
  138. package/claude-assets/skills/cfn-redis-coordination/demos/test-shutdown-handling.sh +0 -187
  139. package/claude-assets/skills/cfn-redis-coordination/demos/test-shutdown.sh +0 -160
  140. package/claude-assets/skills/cfn-redis-coordination/demos/test-utils-unix.sh +0 -97
  141. package/claude-assets/skills/cfn-redis-coordination/demos/test-utils.sh +0 -97
  142. package/claude-assets/skills/cfn-redis-coordination/demos/test-waiting-mode.sh +0 -59
  143. package/claude-assets/skills/cfn-redis-coordination/examples/README.md +0 -73
  144. package/claude-assets/skills/cfn-redis-coordination/examples/grafana-dashboard.json +0 -352
  145. package/claude-assets/skills/cfn-redis-coordination/examples/hierarchical-pattern.sh +0 -127
  146. package/claude-assets/skills/cfn-redis-coordination/examples/mesh-pattern.sh +0 -171
  147. package/claude-assets/skills/cfn-redis-coordination/examples/timeout-handling.sh +0 -227
  148. package/claude-assets/skills/cfn-redis-coordination/examples/waiting-mode-pattern.sh +0 -239
  149. package/claude-assets/skills/cfn-redis-coordination/execute-product-owner-decision.sh +0 -258
  150. package/claude-assets/skills/cfn-redis-coordination/get-agent-timeout.sh +0 -177
  151. package/claude-assets/skills/cfn-redis-coordination/heartbeat-functions.sh +0 -137
  152. package/claude-assets/skills/cfn-redis-coordination/heartbeat-protocol.md +0 -106
  153. package/claude-assets/skills/cfn-redis-coordination/heartbeat.sh +0 -126
  154. package/claude-assets/skills/cfn-redis-coordination/init-swarm.sh +0 -148
  155. package/claude-assets/skills/cfn-redis-coordination/invoke-redis-pattern.sh +0 -220
  156. package/claude-assets/skills/cfn-redis-coordination/invoke-waiting-mode.sh +0 -283
  157. package/claude-assets/skills/cfn-redis-coordination/list-active-swarms.sh +0 -147
  158. package/claude-assets/skills/cfn-redis-coordination/log-event.sh +0 -109
  159. package/claude-assets/skills/cfn-redis-coordination/metrics-export.sh +0 -674
  160. package/claude-assets/skills/cfn-redis-coordination/metrics-schema.json +0 -66
  161. package/claude-assets/skills/cfn-redis-coordination/metrics-storage.md +0 -31
  162. package/claude-assets/skills/cfn-redis-coordination/monitor-cfn-violations.sh +0 -391
  163. package/claude-assets/skills/cfn-redis-coordination/monitor-heartbeats.sh +0 -101
  164. package/claude-assets/skills/cfn-redis-coordination/orchestrate-cfn-loop-v3.sh +0 -141
  165. package/claude-assets/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh +0 -31
  166. package/claude-assets/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.bak +0 -0
  167. package/claude-assets/skills/cfn-redis-coordination/priority-wake-mechanism.md +0 -75
  168. package/claude-assets/skills/cfn-redis-coordination/priority_wake.py +0 -134
  169. package/claude-assets/skills/cfn-redis-coordination/query-dlq.sh +0 -162
  170. package/claude-assets/skills/cfn-redis-coordination/query-logs.sh +0 -103
  171. package/claude-assets/skills/cfn-redis-coordination/redis-pattern.sh +0 -619
  172. package/claude-assets/skills/cfn-redis-coordination/retrieve-context.sh +0 -58
  173. package/claude-assets/skills/cfn-redis-coordination/select-specialist-agent.sh +0 -371
  174. package/claude-assets/skills/cfn-redis-coordination/semantic-match-tfidf.py +0 -252
  175. package/claude-assets/skills/cfn-redis-coordination/send-heartbeat.sh +0 -165
  176. package/claude-assets/skills/cfn-redis-coordination/signal.sh +0 -38
  177. package/claude-assets/skills/cfn-redis-coordination/store-context.sh +0 -86
  178. package/claude-assets/skills/cfn-redis-coordination/store-epic-context.sh +0 -123
  179. package/claude-assets/skills/cfn-redis-coordination/test-context-injection.sh +0 -354
  180. package/claude-assets/skills/cfn-redis-coordination/test-timeout-enforcement.sh +0 -513
  181. package/claude-assets/skills/cfn-redis-coordination/tests/convert-line-endings.sh +0 -15
  182. package/claude-assets/skills/cfn-redis-coordination/tests/dlq-functionality-test.sh +0 -102
  183. package/claude-assets/skills/cfn-redis-coordination/tests/edge-cases-test.sh +0 -99
  184. package/claude-assets/skills/cfn-redis-coordination/tests/integration-test.sh +0 -170
  185. package/claude-assets/skills/cfn-redis-coordination/tests/retry-mechanism-test.sh +0 -82
  186. package/claude-assets/skills/cfn-redis-coordination/tests/run-test-suite.sh +0 -92
  187. package/claude-assets/skills/cfn-redis-coordination/tests/run-tests.sh +0 -4
  188. package/claude-assets/skills/cfn-redis-coordination/tests/test-heartbeat-monitoring.sh +0 -418
  189. package/claude-assets/skills/cfn-redis-coordination/tests/test-heartbeat-simple.sh +0 -124
  190. package/claude-assets/skills/cfn-redis-coordination/tests/test-primitives.sh +0 -166
  191. package/claude-assets/skills/cfn-redis-coordination/tests/test-utils.sh +0 -54
  192. package/claude-assets/skills/cfn-redis-coordination/tests/test_utils.sh +0 -49
  193. package/claude-assets/skills/cfn-redis-coordination/v2_modularization/core_orchestration.sh +0 -76
  194. package/claude-assets/skills/cfn-redis-coordination/validate-parameters.sh +0 -492
@@ -0,0 +1,892 @@
1
+ # SEO Task Mode Guide
2
+
3
+ **Purpose:** Execute SEO content pipeline using Task() spawning from Main Chat (no coordinator agent)
4
+
5
+ **When to Use:**
6
+ - Debugging SEO pipeline issues
7
+ - Learning the 8-step process
8
+ - Single-step testing (keyword research only)
9
+ - Development of new SEO agents
10
+
11
+ **Cost:** $5-15 per full pipeline (Anthropic pricing for all agents)
12
+
13
+ **Alternative:** CLI Mode via `cfn-seo-coordinator` ($1/pipeline with Z.ai routing)
14
+
15
+ ---
16
+
17
+ ## Table of Contents
18
+
19
+ 1. [Quick Start - Full Pipeline](#quick-start-full-pipeline)
20
+ 2. [8-Step Pipeline Guide](#8-step-pipeline-guide)
21
+ 3. [Agent Selection by Step](#agent-selection-by-step)
22
+ 4. [Sprint Workflow](#sprint-workflow)
23
+ 5. [Validation Loop](#validation-loop)
24
+ 6. [Single-Step Execution](#single-step-execution)
25
+ 7. [Content Type Variations](#content-type-variations)
26
+ 8. [Troubleshooting](#troubleshooting)
27
+
28
+ ---
29
+
30
+ ## Quick Start - Full Pipeline
31
+
32
+ **Example Task:** "Write a blog post about preserving family stories for OurStories"
33
+
34
+ **Main Chat Execution:**
35
+
36
+ ```javascript
37
+ // Step 1: Keyword Research
38
+ Task("seo-analytics-specialist", `
39
+ Perform keyword research for blog post topic: "preserving family stories"
40
+
41
+ Deliverables:
42
+ - Primary keyword (target keyword)
43
+ - 10-15 secondary keywords (search volume, difficulty, CPC)
44
+ - Long-tail keyword variations
45
+ - Related questions (People Also Ask)
46
+
47
+ Output: content/seo-data/keyword-research-family-stories.json
48
+
49
+ Success Criteria:
50
+ - Primary keyword identified with search volume data
51
+ - Keyword difficulty ≤60 (rankable)
52
+ - Mix of high-volume and low-competition keywords
53
+ `)
54
+
55
+ // Step 2: Competitor Analysis
56
+ Task("competitive-seo-analyst", `
57
+ Analyze top 3 competitors for keyword "preserve family stories"
58
+
59
+ Context:
60
+ - Primary keyword: [from Step 1 output]
61
+ - Target audience: Families, genealogists
62
+
63
+ Deliverables:
64
+ - Competitor content analysis (structure, word count, headers)
65
+ - Backlink profiles (domain authority, backlinks count)
66
+ - Content gaps (what competitors miss)
67
+ - SERP feature analysis (featured snippets, People Also Ask)
68
+
69
+ Output: content/seo-data/competitor-analysis-family-stories.md
70
+
71
+ Success Criteria:
72
+ - 3 competitors analyzed
73
+ - Content gaps identified (≥3 opportunities)
74
+ - SERP features mapped
75
+ `)
76
+
77
+ // Step 3: Content Outline
78
+ Task("content-seo-strategist", `
79
+ Create SEO-optimized content outline for "preserve family stories" blog post
80
+
81
+ Context:
82
+ - Keyword research: content/seo-data/keyword-research-family-stories.json
83
+ - Competitor analysis: content/seo-data/competitor-analysis-family-stories.md
84
+ - Brand: OurStories
85
+ - Target word count: 1500-2000 words
86
+
87
+ Deliverables:
88
+ - H1 title (includes primary keyword)
89
+ - 5-7 H2 sections
90
+ - H3 subsections where needed
91
+ - Internal linking opportunities
92
+ - CTA placement recommendations
93
+
94
+ Output: content/outlines/preserve-family-stories-outline.md
95
+
96
+ Success Criteria:
97
+ - Primary keyword in H1
98
+ - Secondary keywords distributed across H2s
99
+ - Natural flow (not keyword stuffed)
100
+ - Addresses user intent
101
+ `)
102
+
103
+ // Step 4: Research (External - Perplexity API)
104
+ // Note: This step uses Perplexity via OpenRouter, not a CFN agent
105
+ // Main Chat executes this directly or via a research-helper script
106
+
107
+ // Step 5: Content Writing
108
+ Task("content-seo-strategist", `
109
+ Write blog post following outline: content/outlines/preserve-family-stories-outline.md
110
+
111
+ Context:
112
+ - Outline: content/outlines/preserve-family-stories-outline.md
113
+ - Research sources: content/research/family-stories-research.md
114
+ - Brand voice: OurStories (warm, personal, empowering)
115
+ - Target audience: Families, genealogists, memory keepers
116
+
117
+ Requirements:
118
+ - 1500-2000 words
119
+ - Conversational, human tone (avoid AI language)
120
+ - Include personal examples/anecdotes
121
+ - Natural keyword integration
122
+ - Engaging introduction
123
+ - Strong CTA at end
124
+
125
+ Deliverables:
126
+ - Full blog post draft (markdown)
127
+
128
+ Output: content/drafts/preserve-family-stories.md
129
+
130
+ Success Criteria:
131
+ - Meets word count target
132
+ - Primary keyword appears 3-5 times naturally
133
+ - Conversational tone (no "delve into", "unlock potential")
134
+ - Clear value proposition
135
+ `)
136
+
137
+ // Step 6: SEO Optimization
138
+ Task("technical-seo-specialist", `
139
+ Optimize blog post for technical SEO
140
+
141
+ Context:
142
+ - Draft: content/drafts/preserve-family-stories.md
143
+ - Primary keyword: "preserve family stories"
144
+ - Target URL: /blog/preserve-family-stories
145
+
146
+ Tasks:
147
+ 1. Meta title (50-60 chars, includes primary keyword)
148
+ 2. Meta description (150-160 chars, compelling CTA)
149
+ 3. Header optimization (H1, H2s include keywords)
150
+ 4. Internal linking (3-5 relevant internal links)
151
+ 5. Image alt text recommendations
152
+ 6. URL slug optimization
153
+ 7. Schema markup preparation (for Step 8)
154
+
155
+ Deliverables:
156
+ - Optimized blog post (with frontmatter metadata)
157
+ - SEO checklist (what was optimized)
158
+
159
+ Output: content/optimized/preserve-family-stories.md
160
+
161
+ Success Criteria:
162
+ - Meta title ≤60 chars, includes primary keyword
163
+ - Meta description compelling, ≤160 chars
164
+ - 3-5 internal links added
165
+ - Headers optimized (H1 has primary keyword)
166
+ `)
167
+
168
+ // Step 7: Validation (3 Validators in Parallel)
169
+ Task("humanizer-validator", `
170
+ Validate blog post for natural, human-like writing
171
+
172
+ Context:
173
+ - Article: content/optimized/preserve-family-stories.md
174
+ - Iteration: 1
175
+
176
+ Check for:
177
+ - AI-generated language patterns (red flags)
178
+ - Conversational tone
179
+ - Personal examples/anecdotes
180
+ - Varied sentence structure
181
+
182
+ Output Format:
183
+ - Confidence score: [0.0-1.0]
184
+ - Issues found (with line numbers)
185
+ - Specific rewrites recommended
186
+
187
+ Threshold: ≥0.75 to pass
188
+ `)
189
+
190
+ Task("branding-validator", `
191
+ Validate blog post alignment with OurStories brand
192
+
193
+ Context:
194
+ - Article: content/optimized/preserve-family-stories.md
195
+ - Brand: OurStories
196
+ - Iteration: 1
197
+
198
+ Check for:
199
+ - Brand voice consistency (warm, personal, empowering)
200
+ - Value proposition clarity
201
+ - Tone alignment
202
+ - Messaging consistency
203
+
204
+ Output Format:
205
+ - Confidence score: [0.0-1.0]
206
+ - Brand alignment issues
207
+ - Recommended adjustments
208
+
209
+ Threshold: ≥0.75 to pass
210
+ `)
211
+
212
+ Task("audience-validator", `
213
+ Validate blog post fit for target audience
214
+
215
+ Context:
216
+ - Article: content/optimized/preserve-family-stories.md
217
+ - Audience: Families, genealogists, memory keepers
218
+ - Iteration: 1
219
+
220
+ Check for:
221
+ - Resonance with audience pain points
222
+ - Appropriate complexity level
223
+ - Relatable examples
224
+ - Clear value for target personas
225
+
226
+ Output Format:
227
+ - Confidence score: [0.0-1.0]
228
+ - Audience fit issues
229
+ - Suggested improvements
230
+
231
+ Threshold: ≥0.75 to pass
232
+ `)
233
+
234
+ // Main Chat collects validator scores and calculates consensus
235
+ // IF consensus ≥0.95 → Proceed to Step 8
236
+ // IF consensus <0.95 → Iterate (spawn Step 5 again with validator feedback)
237
+
238
+ // Step 8: Publishing with Schema
239
+ Task("schema-markup-engineer", `
240
+ Add schema markup and prepare for publishing
241
+
242
+ Context:
243
+ - Article: content/optimized/preserve-family-stories.md
244
+ - URL: https://ourstories.com/blog/preserve-family-stories
245
+ - Author: OurStories Team
246
+ - Published: 2025-11-01
247
+
248
+ Tasks:
249
+ 1. Add Article schema (JSON-LD)
250
+ 2. Add BreadcrumbList schema
251
+ 3. Add Organization schema
252
+ 4. Validate schema with Google Rich Results Test
253
+ 5. Final formatting (headings, lists, bold, italics)
254
+
255
+ Deliverables:
256
+ - Final blog post with embedded schema
257
+ - Schema validation report
258
+
259
+ Output: content/published/preserve-family-stories.md
260
+
261
+ Success Criteria:
262
+ - Valid Article schema (no errors in Rich Results Test)
263
+ - Schema includes all required properties
264
+ - Final formatting polished
265
+ `)
266
+ ```
267
+
268
+ ---
269
+
270
+ ## 8-Step Pipeline Guide
271
+
272
+ ### Step 1: Keyword Research
273
+
274
+ **Agent:** `seo-analytics-specialist`
275
+
276
+ **Inputs:**
277
+ - Topic/title (from user request)
278
+ - Target audience (optional)
279
+
280
+ **Outputs:**
281
+ - Primary keyword (target keyword)
282
+ - Secondary keywords (10-15 with metrics)
283
+ - Long-tail variations
284
+ - People Also Ask questions
285
+ - Search intent analysis
286
+
287
+ **Tools:**
288
+ - DataForSEO API (keyword metrics)
289
+ - Google Search Console (existing rankings)
290
+ - SE Ranking (keyword suggestions)
291
+
292
+ **Success Criteria:**
293
+ - Primary keyword identified (search volume >100/month)
294
+ - Keyword difficulty ≤60 (rankable)
295
+ - Mix of head terms and long-tail
296
+ - Search intent clear (informational/transactional/navigational)
297
+
298
+ **Output File:** `content/seo-data/keyword-research-[topic].json`
299
+
300
+ ---
301
+
302
+ ### Step 2: Competitor Analysis
303
+
304
+ **Agent:** `competitive-seo-analyst`
305
+
306
+ **Inputs:**
307
+ - Primary keyword (from Step 1)
308
+ - Target SERP position (default: top 3)
309
+
310
+ **Outputs:**
311
+ - Top 3 competitor analysis
312
+ - Content structure comparison
313
+ - Backlink profiles
314
+ - Content gaps (what competitors miss)
315
+ - SERP features (featured snippets, PAA, images)
316
+
317
+ **Tools:**
318
+ - DataForSEO API (SERP data)
319
+ - Ahrefs API (backlink analysis)
320
+ - SE Ranking (competitor keywords)
321
+
322
+ **Success Criteria:**
323
+ - 3 competitors analyzed
324
+ - Content gaps identified (≥3 opportunities)
325
+ - SERP features mapped
326
+ - Competitive advantage defined
327
+
328
+ **Output File:** `content/seo-data/competitor-analysis-[topic].md`
329
+
330
+ ---
331
+
332
+ ### Step 3: Content Outline
333
+
334
+ **Agent:** `content-seo-strategist`
335
+
336
+ **Inputs:**
337
+ - Keyword research (Step 1)
338
+ - Competitor analysis (Step 2)
339
+ - Brand voice guidelines
340
+ - Target word count
341
+
342
+ **Outputs:**
343
+ - H1 title (SEO-optimized)
344
+ - 5-7 H2 sections
345
+ - H3 subsections
346
+ - Internal linking strategy
347
+ - CTA placement
348
+
349
+ **Success Criteria:**
350
+ - Primary keyword in H1
351
+ - Secondary keywords in H2s (natural)
352
+ - Logical flow (answers user intent)
353
+ - Better structure than competitors
354
+
355
+ **Output File:** `content/outlines/[topic]-outline.md`
356
+
357
+ ---
358
+
359
+ ### Step 4: Research
360
+
361
+ **Method:** Perplexity API via OpenRouter (no CFN agent)
362
+
363
+ **Inputs:**
364
+ - Content outline (Step 3)
365
+ - Research questions (extracted from outline)
366
+
367
+ **Outputs:**
368
+ - Research sources (5-10 credible sources)
369
+ - Key facts/statistics
370
+ - Expert quotes (if available)
371
+ - Data for content support
372
+
373
+ **Tools:**
374
+ - Perplexity API (via OpenRouter)
375
+ - Manual research (Google Scholar, industry publications)
376
+
377
+ **Success Criteria:**
378
+ - ≥5 credible sources cited
379
+ - Data supports outline sections
380
+ - Expert quotes included (where relevant)
381
+
382
+ **Output File:** `content/research/[topic]-research.md`
383
+
384
+ **Main Chat Execution:**
385
+ ```bash
386
+ # Example: Research via Perplexity API
387
+ curl https://openrouter.ai/api/v1/chat/completions \
388
+ -H "Authorization: Bearer $OPENROUTER_API_KEY" \
389
+ -H "Content-Type: application/json" \
390
+ -d '{
391
+ "model": "perplexity/pplx-70b-online",
392
+ "messages": [{
393
+ "role": "user",
394
+ "content": "Research: Best methods for preserving family stories. Include statistics, expert quotes, and credible sources."
395
+ }]
396
+ }' > content/research/family-stories-research.json
397
+ ```
398
+
399
+ ---
400
+
401
+ ### Step 5: Content Writing
402
+
403
+ **Agent:** `content-seo-strategist`
404
+
405
+ **Inputs:**
406
+ - Outline (Step 3)
407
+ - Research (Step 4)
408
+ - Brand voice guidelines
409
+ - Target word count (1500-2000 for blog)
410
+
411
+ **Outputs:**
412
+ - Full blog post draft (markdown)
413
+ - Keyword integration (natural)
414
+ - Engaging introduction
415
+ - Clear CTA
416
+
417
+ **Success Criteria:**
418
+ - Meets word count target
419
+ - Conversational tone (no AI language)
420
+ - Primary keyword appears 3-5 times naturally
421
+ - Includes personal examples/anecdotes
422
+ - Clear value proposition
423
+
424
+ **Output File:** `content/drafts/[topic].md`
425
+
426
+ ---
427
+
428
+ ### Step 6: SEO Optimization
429
+
430
+ **Agents:** `technical-seo-specialist` + `programmatic-seo-engineer` (optional)
431
+
432
+ **Inputs:**
433
+ - Draft (Step 5)
434
+ - Primary keyword
435
+ - Target URL
436
+
437
+ **Tasks:**
438
+ 1. Meta title (50-60 chars, includes keyword)
439
+ 2. Meta description (150-160 chars, compelling)
440
+ 3. Header optimization (H1, H2s)
441
+ 4. Internal linking (3-5 links)
442
+ 5. Image alt text
443
+ 6. URL slug optimization
444
+ 7. Schema markup preparation
445
+
446
+ **Success Criteria:**
447
+ - Meta title ≤60 chars, includes primary keyword
448
+ - Meta description compelling, ≤160 chars
449
+ - 3-5 internal links added
450
+ - Headers optimized
451
+
452
+ **Output File:** `content/optimized/[topic].md`
453
+
454
+ ---
455
+
456
+ ### Step 7: Validation
457
+
458
+ **Agents (Parallel):**
459
+ 1. `humanizer-validator` (natural writing)
460
+ 2. `branding-validator` (brand alignment)
461
+ 3. `audience-validator` (persona fit)
462
+
463
+ **Inputs:**
464
+ - Optimized article (Step 6)
465
+ - Iteration number
466
+
467
+ **Outputs (Per Validator):**
468
+ - Confidence score (0.0-1.0)
469
+ - Issues found (with line numbers)
470
+ - Specific rewrites recommended
471
+
472
+ **Consensus Calculation:**
473
+ ```javascript
474
+ // Main Chat collects scores
475
+ const humanizerScore = 0.85; // From humanizer-validator output
476
+ const brandingScore = 0.90; // From branding-validator output
477
+ const audienceScore = 0.92; // From audience-validator output
478
+
479
+ const consensus = (humanizerScore + brandingScore + audienceScore) / 3;
480
+ // consensus = 0.89
481
+
482
+ if (consensus >= 0.95) {
483
+ console.log("✅ Validation passed - Proceed to Step 8");
484
+ } else {
485
+ console.log(`🔄 Iteration required - Consensus: ${consensus.toFixed(2)}`);
486
+ // Spawn Step 5 again with validator feedback
487
+ }
488
+ ```
489
+
490
+ **Thresholds:**
491
+ - Individual validator: ≥0.75
492
+ - Consensus: ≥0.95
493
+
494
+ ---
495
+
496
+ ### Step 8: Publishing with Schema
497
+
498
+ **Agent:** `schema-markup-engineer`
499
+
500
+ **Inputs:**
501
+ - Optimized article (Step 6, or final iteration from Step 7)
502
+ - URL
503
+ - Author
504
+ - Publication date
505
+
506
+ **Tasks:**
507
+ 1. Add Article schema (JSON-LD)
508
+ 2. Add BreadcrumbList schema
509
+ 3. Add Organization schema
510
+ 4. Validate with Google Rich Results Test
511
+ 5. Final formatting
512
+
513
+ **Success Criteria:**
514
+ - Valid Article schema (no errors)
515
+ - All required properties included
516
+ - Rich Results Test passes
517
+
518
+ **Output File:** `content/published/[topic].md`
519
+
520
+ **Schema Example:**
521
+ ```json
522
+ {
523
+ "@context": "https://schema.org",
524
+ "@type": "Article",
525
+ "headline": "Preserve Family Stories: Complete Guide for 2025",
526
+ "description": "Learn proven methods to preserve family stories...",
527
+ "author": {
528
+ "@type": "Organization",
529
+ "name": "OurStories"
530
+ },
531
+ "datePublished": "2025-11-01",
532
+ "dateModified": "2025-11-01",
533
+ "image": "https://ourstories.com/images/family-stories.jpg"
534
+ }
535
+ ```
536
+
537
+ ---
538
+
539
+ ## Agent Selection by Step
540
+
541
+ | Step | Primary Agent | Secondary Agent | Use When |
542
+ |------|---------------|-----------------|----------|
543
+ | 1. Keyword Research | seo-analytics-specialist | - | All content types |
544
+ | 2. Competitor Analysis | competitive-seo-analyst | - | Blog posts, competitive niches |
545
+ | 3. Content Outline | content-seo-strategist | - | All content types |
546
+ | 4. Research | Perplexity API (no agent) | - | Research-heavy content |
547
+ | 5. Writing | content-seo-strategist | - | All content types |
548
+ | 6. SEO Optimization | technical-seo-specialist | programmatic-seo-engineer | All content, programmatic at scale |
549
+ | 7. Validation | humanizer-validator | branding-validator, audience-validator | All content |
550
+ | 8. Publishing | schema-markup-engineer | - | All content |
551
+
552
+ **Additional Specialists (Use When):**
553
+ - `local-seo-optimizer` - Location pages, GBP content
554
+ - `programmatic-seo-engineer` - Template-based page generation (100+ pages)
555
+ - `geo-optimization-expert` - AI search optimization, citation tracking
556
+ - `link-building-specialist` - Backlink prospecting (post-publishing)
557
+ - `eeat-content-auditor` - E-E-A-T compliance, expert review
558
+
559
+ ---
560
+
561
+ ## Sprint Workflow
562
+
563
+ **When to Use Sprints:**
564
+ - Large content projects (10+ articles)
565
+ - Multi-phase rollouts (keyword research → outline → writing)
566
+ - Team collaboration (separate planning and execution)
567
+
568
+ **Sprint Pattern:**
569
+
570
+ **Sprint 1: Planning (Steps 1-3)**
571
+ ```javascript
572
+ // Sprint Goal: Complete keyword research and outlines for 10 articles
573
+
574
+ Task("seo-analytics-specialist", `
575
+ Keyword research for 10 blog post topics
576
+
577
+ Topics:
578
+ 1. Preserve family stories
579
+ 2. Digital scrapbooking
580
+ 3. Genealogy research tips
581
+ [... 7 more topics ...]
582
+
583
+ Deliverables:
584
+ - content/seo-data/keyword-research-sprint-1.json (all 10 topics)
585
+
586
+ Success: Primary keyword identified for each topic
587
+ `)
588
+
589
+ Task("content-seo-strategist", `
590
+ Create outlines for 10 blog posts
591
+
592
+ Context:
593
+ - Keyword research: content/seo-data/keyword-research-sprint-1.json
594
+
595
+ Deliverables:
596
+ - content/outlines/sprint-1/ (10 outline files)
597
+
598
+ Success: Each outline has 5-7 H2 sections, keywords integrated
599
+ `)
600
+ ```
601
+
602
+ **Sprint 2: Writing (Steps 4-5)**
603
+ ```javascript
604
+ // Sprint Goal: Write 10 blog post drafts
605
+
606
+ // Main Chat spawns 10 content-seo-strategist agents (one per article)
607
+ // Or sequentially if resource-constrained
608
+ ```
609
+
610
+ **Sprint 3: Optimization & Publishing (Steps 6-8)**
611
+ ```javascript
612
+ // Sprint Goal: Optimize, validate, and publish 10 articles
613
+
614
+ // Spawn technical-seo-specialist for each article
615
+ // Then validators in parallel
616
+ // Finally schema-markup-engineer for publishing
617
+ ```
618
+
619
+ ---
620
+
621
+ ## Validation Loop
622
+
623
+ **Iteration Pattern:**
624
+
625
+ **Iteration 1:**
626
+ 1. Content written (Step 5)
627
+ 2. SEO optimized (Step 6)
628
+ 3. Validators run (Step 7)
629
+ 4. Consensus calculated
630
+
631
+ **IF Consensus <0.95:**
632
+
633
+ **Iteration 2:**
634
+ ```javascript
635
+ // Main Chat spawns Step 5 again with validator feedback
636
+
637
+ Task("content-seo-strategist", `
638
+ Rewrite blog post addressing validator feedback
639
+
640
+ Context:
641
+ - Current draft: content/optimized/preserve-family-stories.md
642
+ - Validator feedback:
643
+ - Humanizer (0.75): Remove AI phrases ("delve into" on line 23, "unlock potential" on line 67)
644
+ - Branding (0.85): Strengthen OurStories value proposition in intro
645
+ - Audience (0.92): Add more specific examples for genealogists
646
+
647
+ Tasks:
648
+ 1. Remove all AI-generated phrases
649
+ 2. Rewrite intro with stronger OurStories messaging
650
+ 3. Add 2-3 specific genealogy examples
651
+
652
+ Success: Address all validator feedback, maintain SEO optimization
653
+ `)
654
+
655
+ // Then re-run Step 6 (SEO Optimization) if needed
656
+ // Then re-run Step 7 (Validation)
657
+ ```
658
+
659
+ **Iteration 3 (if needed):**
660
+ Repeat pattern until consensus ≥0.95
661
+
662
+ **Iteration Limit:** 3 iterations
663
+ - After 3 iterations, escalate to manual review or product owner decision
664
+
665
+ ---
666
+
667
+ ## Single-Step Execution
668
+
669
+ **Use Case:** Testing individual agents or debugging specific steps
670
+
671
+ **Example: Test Keyword Research Only**
672
+
673
+ ```javascript
674
+ Task("seo-analytics-specialist", `
675
+ Test keyword research for topic: "preserve family stories"
676
+
677
+ Deliverables:
678
+ - Primary keyword
679
+ - 10 secondary keywords
680
+
681
+ Output: /tmp/test-keyword-research.json
682
+ `)
683
+ ```
684
+
685
+ **Example: Test Validator Only**
686
+
687
+ ```javascript
688
+ Task("humanizer-validator", `
689
+ Validate this sample paragraph for AI language:
690
+
691
+ "In today's digital age, preserving family stories has become more important than ever.
692
+ By leveraging modern technology, you can unlock the potential of your family's legacy
693
+ and embark on a journey to delve into your heritage."
694
+
695
+ Expected: Confidence ≤0.50 (AI language detected)
696
+ `)
697
+ ```
698
+
699
+ ---
700
+
701
+ ## Content Type Variations
702
+
703
+ ### Blog Post (Full Pipeline)
704
+ **Steps:** 1, 2, 3, 4, 5, 6, 7, 8
705
+ **Validators:** humanizer + branding + audience
706
+ **Word Count:** 1500-2000
707
+ **Focus:** Keyword optimization, natural writing, brand voice
708
+
709
+ ### Landing Page
710
+ **Steps:** 1, 3, 5, 6, 7, 8 (skip competitor analysis, minimal research)
711
+ **Validators:** humanizer + branding + audience
712
+ **Word Count:** 800-1200
713
+ **Focus:** Conversion optimization, CTA strength, schema markup
714
+
715
+ ### Product Page
716
+ **Steps:** 1, 5, 6, 7, 8 (minimal outline, focus on schema)
717
+ **Validators:** humanizer + audience (branding optional)
718
+ **Word Count:** 400-800
719
+ **Focus:** Product schema, technical SEO, conversion
720
+
721
+ ### Local Business Content
722
+ **Steps:** 1, 3, 5, 6, 7, 8 + `local-seo-optimizer`
723
+ **Validators:** humanizer + audience
724
+ **Word Count:** 600-1000
725
+ **Focus:** Local keywords, GBP integration, LocalBusiness schema
726
+
727
+ ### Programmatic SEO (100+ Pages)
728
+ **Steps:** 1, 3, 6, 7, 8 (use templates, not custom writing)
729
+ **Agents:** `programmatic-seo-engineer` for Step 6
730
+ **Validators:** humanizer + audience (scaled validation)
731
+ **Word Count:** Variable (template-driven)
732
+ **Focus:** Template quality, duplicate content prevention, schema at scale
733
+
734
+ ---
735
+
736
+ ## Troubleshooting
737
+
738
+ ### Validator Consensus Too Low
739
+
740
+ **Problem:** Validators consistently score <0.75
741
+
742
+ **Solutions:**
743
+ 1. Check validator instructions (are they too strict?)
744
+ 2. Review validator feedback (what specific issues?)
745
+ 3. Provide clearer brand voice guidelines
746
+ 4. Use more specific examples in writing prompt
747
+
748
+ **Example:**
749
+ ```javascript
750
+ // Before (vague)
751
+ Task("content-seo-strategist", "Write blog post about family stories")
752
+
753
+ // After (specific)
754
+ Task("content-seo-strategist", `
755
+ Write blog post about preserving family stories
756
+
757
+ Brand Voice: Warm, personal, empowering (like talking to a family member)
758
+ Tone: Conversational, not academic
759
+ Examples: Include specific scenarios (recording grandparent interviews, digitizing photos)
760
+ Avoid: Corporate jargon, AI phrases, generic advice
761
+ `)
762
+ ```
763
+
764
+ ### Keyword Research Returns No Results
765
+
766
+ **Problem:** DataForSEO API returns no keyword data
767
+
768
+ **Solutions:**
769
+ 1. Check API credentials (DATAFORSEO_EMAIL, DATAFORSEO_PASSWORD)
770
+ 2. Verify API quota not exceeded
771
+ 3. Try broader search terms
772
+ 4. Fallback to manual research (Google Keyword Planner, Ahrefs)
773
+
774
+ ### Schema Validation Fails
775
+
776
+ **Problem:** Google Rich Results Test shows errors
777
+
778
+ **Solutions:**
779
+ 1. Check required properties (headline, author, datePublished)
780
+ 2. Validate image URLs (must be absolute, not relative)
781
+ 3. Ensure date format is ISO 8601 (YYYY-MM-DD)
782
+ 4. Test schema at https://validator.schema.org/
783
+
784
+ ### Writing Too "AI-Like"
785
+
786
+ **Problem:** Humanizer validator scores ≤0.60
787
+
788
+ **Solutions:**
789
+ 1. Add specific examples/anecdotes to prompt
790
+ 2. Request conversational tone explicitly
791
+ 3. Provide list of AI phrases to avoid
792
+ 4. Include sample paragraphs in desired style
793
+
794
+ **Example:**
795
+ ```javascript
796
+ Task("content-seo-strategist", `
797
+ Write blog post with HUMAN, conversational tone
798
+
799
+ Style Guide:
800
+ - ✅ Use contractions (don't, can't, you'll)
801
+ - ✅ Address reader directly (you, your)
802
+ - ✅ Include specific examples (not generic advice)
803
+ - ❌ NO "delve into", "unlock potential", "embark on journey"
804
+ - ❌ NO "In today's digital age" openings
805
+ - ❌ NO corporate jargon
806
+
807
+ Example paragraph in desired style:
808
+ "Think about the last family gathering. Did Grandma tell that story about her first job?
809
+ Those stories matter. Here's how to save them before they're gone."
810
+ `)
811
+ ```
812
+
813
+ ---
814
+
815
+ ## Cost Comparison: Task Mode vs CLI Mode
816
+
817
+ | Execution Mode | Cost/Pipeline | Use Case |
818
+ |----------------|---------------|----------|
819
+ | **Task Mode** (this guide) | $5-15 | Debugging, learning, single articles |
820
+ | **CLI Mode** (cfn-seo-coordinator) | $1 | Production, bulk content, cost optimization |
821
+
822
+ **When Task Mode Makes Sense:**
823
+ - Learning the SEO pipeline
824
+ - Debugging agent behavior
825
+ - Testing new validators
826
+ - Single-article projects (<5 articles)
827
+
828
+ **When to Switch to CLI Mode:**
829
+ - Production content creation
830
+ - Bulk article generation (10+ articles)
831
+ - Ongoing content programs
832
+ - Cost-sensitive projects
833
+
834
+ **Switching to CLI Mode:**
835
+ ```bash
836
+ # Instead of Task() spawning, use coordinator
837
+ /cfn-seo-cli "Write blog post about preserving family stories for OurStories"
838
+
839
+ # Coordinator handles all agent spawning via CLI (Z.ai routing)
840
+ # Same 8-step pipeline, 95% cost savings
841
+ ```
842
+
843
+ ---
844
+
845
+ ## Related Documentation
846
+
847
+ - **CLI Mode Coordinator:** `.claude/agents/cfn-seo-team/cfn-seo-coordinator.md`
848
+ - **Agent Delegation Matrix:** `.claude/agents/cfn-seo-team/DELEGATION_MATRIX.md`
849
+ - **Integration Requirements:** `.claude/agents/cfn-seo-team/INTEGRATION_REQUIREMENTS.md`
850
+ - **Validator Guides:**
851
+ - `.claude/agents/cfn-seo-team/seo-validators/humanizer-validator.md`
852
+ - `.claude/agents/cfn-seo-team/seo-validators/branding-validator.md`
853
+ - `.claude/agents/cfn-seo-team/seo-validators/audience-validator.md`
854
+
855
+ ---
856
+
857
+ ## Quick Reference: Agent Spawning by Step
858
+
859
+ ```javascript
860
+ // Step 1
861
+ Task("seo-analytics-specialist", "Keyword research for [topic]")
862
+
863
+ // Step 2
864
+ Task("competitive-seo-analyst", "Analyze competitors for [keyword]")
865
+
866
+ // Step 3
867
+ Task("content-seo-strategist", "Create outline for [topic]")
868
+
869
+ // Step 4 (no agent - API call)
870
+ // curl Perplexity API for research
871
+
872
+ // Step 5
873
+ Task("content-seo-strategist", "Write blog post from outline")
874
+
875
+ // Step 6
876
+ Task("technical-seo-specialist", "Optimize [draft] for SEO")
877
+
878
+ // Step 7 (parallel)
879
+ Task("humanizer-validator", "Validate [article] for natural writing")
880
+ Task("branding-validator", "Validate [article] for brand alignment")
881
+ Task("audience-validator", "Validate [article] for audience fit")
882
+
883
+ // Step 8
884
+ Task("schema-markup-engineer", "Add schema markup and publish [article]")
885
+ ```
886
+
887
+ ---
888
+
889
+ **Version:** 1.0.0
890
+ **Last Updated:** 2025-11-01
891
+ **Maintained By:** CFN SEO Team
892
+ **Feedback:** Share your SEO pipeline improvements!