claude-flow-novice 2.14.28 → 2.14.30

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 (164) hide show
  1. package/.claude/cfn-agents-ignore/cfn-seo-team/AGENT_CREATION_REPORT.md +4 -14
  2. package/.claude/cfn-agents-ignore/cfn-seo-team/AGENT_CREATION_REPORT.md.backup +481 -0
  3. package/.claude/cfn-agents-ignore/cfn-seo-team/DELEGATION_MATRIX.md +3 -4
  4. package/.claude/cfn-agents-ignore/cfn-seo-team/DELEGATION_MATRIX.md.backup +371 -0
  5. package/.claude/cfn-agents-ignore/cfn-seo-team/INTEGRATION_REQUIREMENTS.md +20 -26
  6. package/.claude/cfn-agents-ignore/cfn-seo-team/INTEGRATION_REQUIREMENTS.md.backup +637 -0
  7. package/.claude/cfn-agents-ignore/cfn-seo-team/cfn-seo-coordinator.md +295 -50
  8. package/.claude/cfn-agents-ignore/cfn-seo-team/cfn-seo-coordinator.md.backup +398 -0
  9. package/.claude/cfn-agents-ignore/cfn-seo-team/competitive-seo-analyst.md +27 -25
  10. package/.claude/cfn-agents-ignore/cfn-seo-team/competitive-seo-analyst.md.backup +401 -0
  11. package/.claude/cfn-agents-ignore/cfn-seo-team/content-atomization-specialist.md +5 -106
  12. package/.claude/cfn-agents-ignore/cfn-seo-team/content-atomization-specialist.md.backup +552 -0
  13. package/.claude/cfn-agents-ignore/cfn-seo-team/content-seo-strategist.md +5 -25
  14. package/.claude/cfn-agents-ignore/cfn-seo-team/content-seo-strategist.md.backup +223 -0
  15. package/.claude/cfn-agents-ignore/cfn-seo-team/eeat-content-auditor.md +5 -27
  16. package/.claude/cfn-agents-ignore/cfn-seo-team/eeat-content-auditor.md.backup +367 -0
  17. package/.claude/cfn-agents-ignore/cfn-seo-team/geo-optimization-expert.md +5 -27
  18. package/.claude/cfn-agents-ignore/cfn-seo-team/geo-optimization-expert.md.backup +247 -0
  19. package/.claude/cfn-agents-ignore/cfn-seo-team/link-building-specialist.md +5 -27
  20. package/.claude/cfn-agents-ignore/cfn-seo-team/link-building-specialist.md.backup +269 -0
  21. package/.claude/cfn-agents-ignore/cfn-seo-team/local-seo-optimizer.md +5 -25
  22. package/.claude/cfn-agents-ignore/cfn-seo-team/local-seo-optimizer.md.backup +311 -0
  23. package/.claude/cfn-agents-ignore/cfn-seo-team/programmatic-seo-engineer.md +6 -26
  24. package/.claude/cfn-agents-ignore/cfn-seo-team/programmatic-seo-engineer.md.backup +222 -0
  25. package/.claude/cfn-agents-ignore/cfn-seo-team/schema-markup-engineer.md +5 -25
  26. package/.claude/cfn-agents-ignore/cfn-seo-team/schema-markup-engineer.md.backup +408 -0
  27. package/.claude/cfn-agents-ignore/cfn-seo-team/seo-analytics-specialist.md +6 -26
  28. package/.claude/cfn-agents-ignore/cfn-seo-team/seo-analytics-specialist.md.backup +354 -0
  29. package/.claude/cfn-agents-ignore/cfn-seo-team/seo-validators/accessibility-validator.md +4 -4
  30. package/.claude/cfn-agents-ignore/cfn-seo-team/seo-validators/accessibility-validator.md.backup +561 -0
  31. package/.claude/cfn-agents-ignore/cfn-seo-team/seo-validators/audience-validator.md +2 -2
  32. package/.claude/cfn-agents-ignore/cfn-seo-team/seo-validators/audience-validator.md.backup +480 -0
  33. package/.claude/cfn-agents-ignore/cfn-seo-team/seo-validators/branding-validator.md +1 -1
  34. package/.claude/cfn-agents-ignore/cfn-seo-team/seo-validators/branding-validator.md.backup +448 -0
  35. package/.claude/cfn-agents-ignore/cfn-seo-team/seo-validators/humanizer-validator.md +2 -2
  36. package/.claude/cfn-agents-ignore/cfn-seo-team/seo-validators/humanizer-validator.md.backup +329 -0
  37. package/.claude/cfn-agents-ignore/cfn-seo-team/technical-seo-specialist.md +361 -199
  38. package/.claude/cfn-agents-ignore/cfn-seo-team/technical-seo-specialist.md.backup +208 -0
  39. package/.claude/commands/CFN_LOOP_TASK_MODE.md +100 -11
  40. package/.claude/commands/cfn-mode.md +2 -2
  41. package/.claude/skills/cfn-agent-spawning/spawn-agent.sh +12 -0
  42. package/.claude/skills/cfn-agent-spawning/spawn-agent.sh.backup +273 -0
  43. package/.claude/skills/cfn-hybrid-routing/README.md +1 -1
  44. package/.claude/skills/cfn-loop-orchestration/orchestrate.sh +95 -15
  45. package/.claude/skills/cfn-loop-orchestration/orchestrate.sh.backup +76 -11
  46. package/.claude/skills/cfn-loop-orchestration/orchestrate.sh.backup2 +959 -0
  47. package/.claude/skills/cfn-loop-orchestration/orchestrate.sh.clean +949 -0
  48. package/.claude/skills/cfn-product-owner-decision/execute-decision.sh +82 -10
  49. package/claude-assets/agents/cfn-dev-team/CLAUDE.md +24 -14
  50. package/claude-assets/agents/cfn-dev-team/architecture/api-designer-persona.md +0 -7
  51. package/claude-assets/agents/cfn-dev-team/architecture/base-template-generator.md +12 -38
  52. package/claude-assets/agents/cfn-dev-team/architecture/goal-planner.md +0 -10
  53. package/claude-assets/agents/cfn-dev-team/architecture/planner.md +7 -57
  54. package/claude-assets/agents/cfn-dev-team/architecture/system-architect.md +8 -45
  55. package/claude-assets/agents/cfn-dev-team/coordinators/cfn-frontend-coordinator.md +365 -25
  56. package/claude-assets/agents/cfn-dev-team/coordinators/cfn-v3-coordinator.md +504 -448
  57. package/claude-assets/agents/cfn-dev-team/coordinators/consensus-builder.md +428 -167
  58. package/claude-assets/agents/cfn-dev-team/coordinators/multi-sprint-coordinator.md +472 -20
  59. package/claude-assets/agents/cfn-dev-team/dev-ops/devops-engineer.md +5 -5
  60. package/claude-assets/agents/cfn-dev-team/dev-ops/docker-specialist.md +5 -7
  61. package/claude-assets/agents/cfn-dev-team/dev-ops/kubernetes-specialist.md +0 -6
  62. package/claude-assets/agents/cfn-dev-team/dev-ops/monitoring-specialist.md +3 -3
  63. package/claude-assets/agents/cfn-dev-team/developers/api-gateway-specialist.md +13 -14
  64. package/claude-assets/agents/cfn-dev-team/developers/data/data-engineer.md +0 -6
  65. package/claude-assets/agents/cfn-dev-team/developers/database/database-architect.md +2 -2
  66. package/claude-assets/agents/cfn-dev-team/developers/frontend/mobile-dev.md +10 -56
  67. package/claude-assets/agents/cfn-dev-team/developers/frontend/typescript-specialist.md +7 -26
  68. package/claude-assets/agents/cfn-dev-team/developers/rust-developer.md +8 -48
  69. package/claude-assets/agents/cfn-dev-team/documentation/api-documentation.md +1 -1
  70. package/claude-assets/agents/cfn-dev-team/documentation/pseudocode.md +3 -11
  71. package/claude-assets/agents/cfn-dev-team/documentation/specification-agent.md +6 -16
  72. package/claude-assets/agents/cfn-dev-team/product-owners/cto-agent.md +7 -19
  73. package/claude-assets/agents/cfn-dev-team/product-owners/power-user-persona.md +9 -49
  74. package/claude-assets/agents/cfn-dev-team/product-owners/product-owner.md +291 -86
  75. package/claude-assets/agents/cfn-dev-team/reviewers/quality/code-quality-validator.md +9 -81
  76. package/claude-assets/agents/cfn-dev-team/reviewers/quality/cyclomatic-complexity-reducer.md +4 -64
  77. package/claude-assets/agents/cfn-dev-team/reviewers/quality/perf-analyzer.md +7 -87
  78. package/claude-assets/agents/cfn-dev-team/reviewers/quality/performance-benchmarker.md +8 -12
  79. package/claude-assets/agents/cfn-dev-team/reviewers/quality/security-specialist.md +11 -129
  80. package/claude-assets/agents/cfn-dev-team/reviewers/reviewer.md +231 -280
  81. package/claude-assets/agents/cfn-dev-team/testers/api-testing-specialist.md +0 -6
  82. package/claude-assets/agents/cfn-dev-team/testers/chaos-engineering-specialist.md +0 -6
  83. package/claude-assets/agents/cfn-dev-team/testers/e2e/playwright-tester.md +7 -32
  84. package/claude-assets/agents/cfn-dev-team/testers/interaction-tester.md +9 -47
  85. package/claude-assets/agents/cfn-dev-team/testers/load-testing-specialist.md +0 -6
  86. package/claude-assets/agents/cfn-dev-team/testers/playwright-tester.md +12 -28
  87. package/claude-assets/agents/cfn-dev-team/testers/tester.md +167 -236
  88. package/claude-assets/agents/cfn-dev-team/testers/unit/tdd-london-unit-swarm.md +7 -27
  89. package/claude-assets/agents/cfn-dev-team/testers/validation/validation-production-validator.md +7 -19
  90. package/claude-assets/agents/cfn-dev-team/testing/test-validation-agent.md +10 -47
  91. package/claude-assets/agents/cfn-dev-team/utility/agent-builder.md +40 -116
  92. package/claude-assets/agents/cfn-dev-team/utility/analyst.md +7 -47
  93. package/claude-assets/agents/cfn-dev-team/utility/code-booster.md +7 -40
  94. package/claude-assets/agents/cfn-dev-team/utility/context-curator.md +7 -47
  95. package/claude-assets/agents/cfn-dev-team/{coordinators → utility}/epic-creator.md +29 -0
  96. package/claude-assets/cfn-agents-ignore/cfn-seo-team/AGENT_CREATION_REPORT.md +4 -14
  97. package/claude-assets/cfn-agents-ignore/cfn-seo-team/AGENT_CREATION_REPORT.md.backup +481 -0
  98. package/claude-assets/cfn-agents-ignore/cfn-seo-team/DELEGATION_MATRIX.md +3 -4
  99. package/claude-assets/cfn-agents-ignore/cfn-seo-team/DELEGATION_MATRIX.md.backup +371 -0
  100. package/claude-assets/cfn-agents-ignore/cfn-seo-team/INTEGRATION_REQUIREMENTS.md +20 -26
  101. package/claude-assets/cfn-agents-ignore/cfn-seo-team/INTEGRATION_REQUIREMENTS.md.backup +637 -0
  102. package/claude-assets/cfn-agents-ignore/cfn-seo-team/cfn-seo-coordinator.md +295 -50
  103. package/claude-assets/cfn-agents-ignore/cfn-seo-team/cfn-seo-coordinator.md.backup +398 -0
  104. package/claude-assets/cfn-agents-ignore/cfn-seo-team/competitive-seo-analyst.md +27 -25
  105. package/claude-assets/cfn-agents-ignore/cfn-seo-team/competitive-seo-analyst.md.backup +401 -0
  106. package/claude-assets/cfn-agents-ignore/cfn-seo-team/content-atomization-specialist.md +5 -106
  107. package/claude-assets/cfn-agents-ignore/cfn-seo-team/content-atomization-specialist.md.backup +552 -0
  108. package/claude-assets/cfn-agents-ignore/cfn-seo-team/content-seo-strategist.md +5 -25
  109. package/claude-assets/cfn-agents-ignore/cfn-seo-team/content-seo-strategist.md.backup +223 -0
  110. package/claude-assets/cfn-agents-ignore/cfn-seo-team/eeat-content-auditor.md +5 -27
  111. package/claude-assets/cfn-agents-ignore/cfn-seo-team/eeat-content-auditor.md.backup +367 -0
  112. package/claude-assets/cfn-agents-ignore/cfn-seo-team/geo-optimization-expert.md +5 -27
  113. package/claude-assets/cfn-agents-ignore/cfn-seo-team/geo-optimization-expert.md.backup +247 -0
  114. package/claude-assets/cfn-agents-ignore/cfn-seo-team/link-building-specialist.md +5 -27
  115. package/claude-assets/cfn-agents-ignore/cfn-seo-team/link-building-specialist.md.backup +269 -0
  116. package/claude-assets/cfn-agents-ignore/cfn-seo-team/local-seo-optimizer.md +5 -25
  117. package/claude-assets/cfn-agents-ignore/cfn-seo-team/local-seo-optimizer.md.backup +311 -0
  118. package/claude-assets/cfn-agents-ignore/cfn-seo-team/programmatic-seo-engineer.md +6 -26
  119. package/claude-assets/cfn-agents-ignore/cfn-seo-team/programmatic-seo-engineer.md.backup +222 -0
  120. package/claude-assets/cfn-agents-ignore/cfn-seo-team/schema-markup-engineer.md +5 -25
  121. package/claude-assets/cfn-agents-ignore/cfn-seo-team/schema-markup-engineer.md.backup +408 -0
  122. package/claude-assets/cfn-agents-ignore/cfn-seo-team/seo-analytics-specialist.md +6 -26
  123. package/claude-assets/cfn-agents-ignore/cfn-seo-team/seo-analytics-specialist.md.backup +354 -0
  124. package/claude-assets/cfn-agents-ignore/cfn-seo-team/seo-validators/accessibility-validator.md +4 -4
  125. package/claude-assets/cfn-agents-ignore/cfn-seo-team/seo-validators/accessibility-validator.md.backup +561 -0
  126. package/claude-assets/cfn-agents-ignore/cfn-seo-team/seo-validators/audience-validator.md +2 -2
  127. package/claude-assets/cfn-agents-ignore/cfn-seo-team/seo-validators/audience-validator.md.backup +480 -0
  128. package/claude-assets/cfn-agents-ignore/cfn-seo-team/seo-validators/branding-validator.md +1 -1
  129. package/claude-assets/cfn-agents-ignore/cfn-seo-team/seo-validators/branding-validator.md.backup +448 -0
  130. package/claude-assets/cfn-agents-ignore/cfn-seo-team/seo-validators/humanizer-validator.md +2 -2
  131. package/claude-assets/cfn-agents-ignore/cfn-seo-team/seo-validators/humanizer-validator.md.backup +329 -0
  132. package/claude-assets/cfn-agents-ignore/cfn-seo-team/technical-seo-specialist.md +361 -199
  133. package/claude-assets/cfn-agents-ignore/cfn-seo-team/technical-seo-specialist.md.backup +208 -0
  134. package/claude-assets/commands/CFN_LOOP_TASK_MODE.md +100 -11
  135. package/claude-assets/commands/cfn-mode.md +2 -2
  136. package/claude-assets/skills/cfn-agent-spawning/spawn-agent.sh +12 -0
  137. package/claude-assets/skills/cfn-agent-spawning/spawn-agent.sh.backup +273 -0
  138. package/claude-assets/skills/cfn-environment-sanitization/SKILL.md +200 -0
  139. package/claude-assets/skills/cfn-environment-sanitization/sanitize-environment.sh +244 -0
  140. package/claude-assets/skills/cfn-hybrid-routing/README.md +1 -1
  141. package/claude-assets/skills/cfn-loop-orchestration/orchestrate.sh +95 -15
  142. package/claude-assets/skills/cfn-loop-orchestration/orchestrate.sh.backup +76 -11
  143. package/claude-assets/skills/cfn-loop-orchestration/orchestrate.sh.backup2 +959 -0
  144. package/claude-assets/skills/cfn-loop-orchestration/orchestrate.sh.clean +949 -0
  145. package/claude-assets/skills/cfn-node-heap-sizer/task-mode-heap-limiter.sh +326 -0
  146. package/claude-assets/skills/cfn-process-instrumentation/SKILL.md +279 -0
  147. package/claude-assets/skills/cfn-process-instrumentation/instrument-process.sh +323 -0
  148. package/claude-assets/skills/cfn-product-owner-decision/execute-decision.sh +82 -10
  149. package/claude-assets/skills/cfn-task-audit/get-audit-data.sh +376 -0
  150. package/claude-assets/skills/cfn-task-audit/store-task-audit.sh +184 -0
  151. package/claude-assets/skills/cfn-task-mode-safety/cli-coordination.sh +519 -0
  152. package/claude-assets/skills/cfn-task-mode-safety/mode-detection.sh +326 -0
  153. package/claude-assets/skills/cfn-task-mode-sanitize/task-mode-env-sanitizer.sh +224 -0
  154. package/claude-assets/skills/cfn-telemetry/collect-metrics.sh +249 -0
  155. package/claude-assets/skills/cfn-telemetry/start-telemetry.sh +111 -0
  156. package/claude-assets/skills/cfn-validation-runner-instrumentation/wrapped-executor.sh +327 -0
  157. package/dist/agents/agent-loader.js +146 -165
  158. package/dist/agents/agent-loader.js.map +1 -1
  159. package/dist/cli/config-manager.js +109 -91
  160. package/dist/cli/config-manager.js.map +1 -1
  161. package/package.json +1 -1
  162. package/scripts/mode-detection.sh +321 -0
  163. package/scripts/spawn-worker.sh +8 -0
  164. package/scripts/track-zai-costs-simple.sh +8 -0
@@ -89,14 +89,14 @@ BRAND=$(echo "$TASK_DESCRIPTION" | grep -oP 'brand:\s*\K.*' || echo "OurStories"
89
89
  AUDIENCE=$(echo "$TASK_DESCRIPTION" | grep -oP 'audience:\s*\K.*' || echo "general")
90
90
  TARGET_LOCATION=$(echo "$TASK_DESCRIPTION" | grep -oP 'location:\s*\K.*' || echo "")
91
91
 
92
- # Store in Redis for orchestrator
93
- redis-cli HSET "seo:task:$TASK_ID:context" \
94
- target_keyword "$TARGET_KEYWORD" \
95
- content_type "$CONTENT_TYPE" \
96
- brand "$BRAND" \
97
- audience "$AUDIENCE" \
98
- target_location "$TARGET_LOCATION" \
99
- task_description "$TASK_DESCRIPTION"
92
+ # Store context for orchestrator
93
+ # Context will be passed to orchestration script
94
+ export SEO_CONTEXT_TARGET_KEYWORD="$TARGET_KEYWORD"
95
+ export SEO_CONTEXT_CONTENT_TYPE="$CONTENT_TYPE"
96
+ export SEO_CONTEXT_BRAND="$BRAND"
97
+ export SEO_CONTEXT_AUDIENCE="$AUDIENCE"
98
+ export SEO_CONTEXT_TARGET_LOCATION="$TARGET_LOCATION"
99
+ export SEO_CONTEXT_TASK_DESCRIPTION="$TASK_DESCRIPTION"
100
100
  ```
101
101
 
102
102
  ## DataForSEO API Integration
@@ -179,16 +179,15 @@ exit 0
179
179
 
180
180
  **Why Exit After Spawning:**
181
181
  - Orchestrator runs as background process
182
- - Uses Redis for coordination
183
182
  - Spawns SEO agents via CLI (Z.ai routing)
184
- - Reports progress to Redis
185
- - Main Chat monitors via web portal or Redis
183
+ - Reports progress through output monitoring
184
+ - Main Chat monitors via web portal or output logs
186
185
 
187
186
  ## Validation Thresholds
188
187
 
189
188
  **Step 7 Validators:**
190
189
  - **Individual Gate:** Each validator ≥0.75 confidence
191
- - **Consensus:** Average of all validators ≥0.95
190
+ - **Average Score:** Average of all validators ≥0.95
192
191
  - **Required Validators:**
193
192
  - `humanizer-validator` (natural writing)
194
193
  - `branding-validator` (OurStories alignment)
@@ -196,19 +195,20 @@ exit 0
196
195
 
197
196
  **Iteration Logic:**
198
197
  ```bash
199
- # Collect validator scores
200
- HUMANIZER_SCORE=$(redis-cli HGET "seo:task:$TASK_ID:validation:iteration:$ITERATION" humanizer)
201
- BRANDING_SCORE=$(redis-cli HGET "seo:task:$TASK_ID:validation:iteration:$ITERATION" branding)
202
- AUDIENCE_SCORE=$(redis-cli HGET "seo:task:$TASK_ID:validation:iteration:$ITERATION" audience)
198
+ # Collect validator scores from validation results
199
+ # Scores are retrieved from orchestration output or validation results
200
+ HUMANIZER_SCORE=$(cat validation_results.json | jq -r '.humanizer // 0')
201
+ BRANDING_SCORE=$(cat validation_results.json | jq -r '.branding // 0')
202
+ AUDIENCE_SCORE=$(cat validation_results.json | jq -r '.audience // 0')
203
203
 
204
- # Calculate consensus
205
- CONSENSUS=$(echo "scale=2; ($HUMANIZER_SCORE + $BRANDING_SCORE + $AUDIENCE_SCORE) / 3" | bc)
204
+ # Calculate average
205
+ AVERAGE_SCORE=$(echo "scale=2; ($HUMANIZER_SCORE + $BRANDING_SCORE + $AUDIENCE_SCORE) / 3" | bc)
206
206
 
207
207
  # Decision
208
- if (( $(echo "$CONSENSUS >= 0.95" | bc -l) )); then
208
+ if (( $(echo "$AVERAGE_SCORE >= 0.95" | bc -l) )); then
209
209
  echo "✅ Validation passed - Proceed to publishing"
210
210
  else
211
- echo "🔄 Iteration required - Consensus: $CONSENSUS"
211
+ echo "🔄 Iteration required - Average Score: $AVERAGE_SCORE"
212
212
  # Wake Step 5 (writer) with validator feedback
213
213
  fi
214
214
  ```
@@ -247,7 +247,7 @@ esac
247
247
 
248
248
  **Coordinator Success:**
249
249
  - Task classified correctly
250
- - Context extracted and stored in Redis
250
+ - Context extracted and passed to orchestrator
251
251
  - Orchestrator invoked successfully
252
252
  - All required API credentials validated
253
253
  - Clean exit after spawning orchestrator
@@ -259,7 +259,7 @@ esac
259
259
  - Step 4: Research complete (≥5 sources)
260
260
  - Step 5: Draft written (≥1500 words for blog)
261
261
  - Step 6: SEO optimized (title tag, meta description, headers, schema)
262
- - Step 7: Validation consensus ≥0.95
262
+ - Step 7: Validation average ≥0.95
263
263
  - Step 8: Published with schema markup
264
264
 
265
265
  ## Output Format
@@ -283,27 +283,279 @@ Return structured JSON for Main Chat visibility:
283
283
  "perplexity": "enabled"
284
284
  },
285
285
  "estimated_duration": "45-60 minutes",
286
- "monitoring": "redis-cli HGETALL seo:task:seo-task-12345:status"
286
+ "monitoring": "Output logs track progress and agent status"
287
287
  }
288
288
  ```
289
289
 
290
- ## Redis Monitoring Commands
290
+ ## Redis Coordination System
291
+
292
+ The SEO coordinator uses Redis-based coordination for CLI-mode SEO agent orchestration. This enables swarm recovery, progress tracking, and cost optimization.
293
+
294
+ ### SEO-Specific Redis Context Storage
295
+
296
+ Store SEO campaign parameters and pipeline state:
297
+
298
+ ```bash
299
+ # SEO Campaign Context Storage
300
+ redis-cli HSET "seo_campaign:${TASK_ID}:context" \
301
+ "campaign_type" "${CONTENT_TYPE}" \
302
+ "target_keyword" "${TARGET_KEYWORD}" \
303
+ "brand" "${BRAND}" \
304
+ "audience" "${AUDIENCE}" \
305
+ "target_location" "${TARGET_LOCATION}" \
306
+ "content_type" "${CONTENT_TYPE}" \
307
+ "pipeline_steps" "${PIPELINE_STEPS}" \
308
+ "iteration" "1"
309
+
310
+ # SEO Pipeline Configuration
311
+ redis-cli HSET "seo_campaign:${TASK_ID}:config" \
312
+ "dataforseo_api" "${DATAFORSEO_API_KEY:-UNSET}" \
313
+ "openrouter_api" "${OPENROUTER_API_KEY:-UNSET}" \
314
+ "specialists" "${SEO_SPECIALISTS}" \
315
+ "validation_threshold" "0.95" \
316
+ "cost_optimization" "enabled"
317
+
318
+ # Store step-specific context for each SEO specialist
319
+ for step in ${PIPELINE_STEPS}; do
320
+ redis-cli HSET "seo_campaign:${TASK_ID}:step:${step}" \
321
+ "status" "pending" \
322
+ "agent_type" "${step}" \
323
+ "iteration" "1"
324
+ done
325
+ ```
326
+
327
+ ### SEO Specialist Agent Spawning with Context
328
+
329
+ ```bash
330
+ # Spawn SEO specialists with campaign context
331
+ SEO_SPECIALISTS=("seo-analytics-specialist" "content-seo-strategist" "technical-seo-specialist" "schema-markup-engineer")
332
+
333
+ for specialist in "${SEO_SPECIALISTS[@]}"; do
334
+ AGENT_ID="${TASK_ID}-${specialist}-$(date +%s)"
335
+
336
+ # Store specialist-specific SEO context
337
+ redis-cli HSET "seo_agent:${AGENT_ID}" \
338
+ "agent_type" "${specialist}" \
339
+ "task_id" "${TASK_ID}" \
340
+ "campaign_type" "${CONTENT_TYPE}" \
341
+ "target_keyword" "${TARGET_KEYWORD}" \
342
+ "brand" "${BRAND}" \
343
+ "pipeline_step" "${specialist}" \
344
+ "status" "spawning"
345
+
346
+ # Inject SEO context and spawn via CLI (cost-optimized Z.ai routing)
347
+ SEO_CONTEXT=$(cat <<EOF
348
+ SEO Campaign Execution for ${CONTENT_TYPE}
349
+
350
+ Campaign Parameters:
351
+ - Target Keyword: ${TARGET_KEYWORD}
352
+ - Brand: ${BRAND}
353
+ - Audience: ${AUDIENCE}
354
+ - Content Type: ${CONTENT_TYPE}
355
+ - Pipeline Step: ${specialist}
356
+
357
+ Specialist Instructions: $(redis-cli HGET "seo_campaign:${TASK_ID}:specialist_instructions" "${specialist}")
358
+ EOF
359
+ )
360
+
361
+ npx claude-flow-novice agent-spawn "${specialist}" \
362
+ --task-id "${TASK_ID}" \
363
+ --agent-id "${AGENT_ID}" \
364
+ --context "${SEO_CONTEXT}" &
365
+
366
+ SEO_AGENT_PIDS+=($!)
367
+ done
368
+
369
+ # Wait for all SEO specialists to complete
370
+ wait "${SEO_AGENT_PIDS[@]}"
371
+ ```
372
+
373
+ ### SEO Pipeline Completion Collection
291
374
 
292
- **For Main Chat / User:**
293
375
  ```bash
294
- # Check overall status
295
- redis-cli HGETALL "seo:task:$TASK_ID:status"
376
+ # Collect SEO specialist completion signals
377
+ SEO_CONFIDENCES=()
378
+ SEO_DELIVERABLES=()
379
+
380
+ for specialist in "${SEO_SPECIALISTS[@]}"; do
381
+ # Block for specialist completion (zero-token blocking)
382
+ COMPLETION_SIGNAL=$(redis-cli blpop "swarm:${TASK_ID}:${specialist}:done" 300)
383
+
384
+ if [ -n "$COMPLETION_SIGNAL" ]; then
385
+ # Extract specialist confidence
386
+ CONFIDENCE=$(redis-cli HGET "seo_campaign:${TASK_ID}:confidence:${specialist}")
387
+ SEO_CONFIDENCES+=("$CONFIDENCE")
388
+
389
+ # Track deliverables created by this specialist
390
+ DELIVERABLES_JSON=$(redis-cli HGET "seo_campaign:${TASK_ID}:deliverables:${specialist}")
391
+ SEO_DELIVERABLES+=("$DELIVERABLES_JSON")
392
+
393
+ echo "✅ ${specialist} completed with confidence: ${CONFIDENCE}"
394
+ else
395
+ echo "⚠️ SEO specialist ${specialist} timed out"
396
+ SEO_CONFIDENCES+=("0.0")
397
+ fi
398
+ done
399
+
400
+ # Calculate SEO pipeline confidence
401
+ AVERAGE_SEO_CONFIDENCE=$(printf '%s\n' "${SEO_CONFIDENCES[@]}" | awk '{sum+=$1} END {print sum/NR}')
402
+ echo "SEO Pipeline average confidence: $AVERAGE_SEO_CONFIDENCE"
403
+ ```
296
404
 
297
- # Check current step
298
- redis-cli HGET "seo:task:$TASK_ID:status" current_step
405
+ ### SEO Content Strategy Consensus
299
406
 
300
- # Check validation scores
301
- redis-cli HGETALL "seo:task:$TASK_ID:validation:iteration:1"
407
+ For content strategy decisions (keyword selection, content structure, optimization strategy):
302
408
 
303
- # Monitor orchestrator logs
304
- redis-cli LRANGE "seo:task:$TASK_ID:logs" 0 -1
409
+ ```bash
410
+ # Content Strategy Consensus Collection
411
+ STRATEGY_VALIDATORS=("competitive-seo-analyst" "content-seo-strategist" "technical-seo-specialist")
412
+ STRATEGY_CONSENSUSES=()
413
+
414
+ for validator in "${STRATEGY_VALIDATORS[@]}"; do
415
+ # Collect strategy consensus signals
416
+ CONSENSUS_SIGNAL=$(redis-cli blpop "swarm:${TASK_ID}:${validator}:strategy_done" 180)
417
+
418
+ if [ -n "$CONSENSUS_SIGNAL" ]; then
419
+ STRATEGY_SCORE=$(redis-cli HGET "seo_campaign:${TASK_ID}:strategy_consensus:${validator}")
420
+ STRATEGY_CONSENSUSES+=("$STRATEGY_SCORE")
421
+ else
422
+ STRATEGY_CONSENSUSES+=("0.0")
423
+ fi
424
+ done
425
+
426
+ # Calculate strategy consensus for SEO decisions
427
+ STRATEGY_AVERAGE=$(printf '%s\n' "${STRATEGY_CONSENSUSES[@]}" | awk '{sum+=$1} END {print sum/NR}')
305
428
  ```
306
429
 
430
+ ### SEO Validation Gate (Content Quality)
431
+
432
+ SEO content must pass validation gate before publishing:
433
+
434
+ ```bash
435
+ # SEO Validation Gate Check
436
+ VALIDATION_THRESHOLD=0.95
437
+
438
+ if (( $(echo "$AVERAGE_SEO_CONFIDENCE >= $VALIDATION_THRESHOLD" | bc -l) )); then
439
+ echo "✅ SEO Content Quality Gate PASSED"
440
+
441
+ # Store gate result and signal schema generation
442
+ redis-cli HSET "seo_campaign:${TASK_ID}:validation_gate" \
443
+ "status" "passed" \
444
+ "confidence" "$AVERAGE_SEO_CONFIDENCE" \
445
+ "timestamp" "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
446
+
447
+ # Signal schema-markup-engineer to create structured data
448
+ redis-cli lpush "swarm:${TASK_ID}:seo-validation-passed" "1"
449
+
450
+ # Trigger schema generation and publishing
451
+ spawn_schema_generation
452
+ else
453
+ echo "❌ SEO Content Quality Gate FAILED - requires optimization"
454
+
455
+ # Store failure and prepare optimization feedback
456
+ redis-cli HSET "seo_campaign:${TASK_ID}:validation_gate" \
457
+ "status" "failed" \
458
+ "confidence" "$AVERAGE_SEO_CONFIDENCE" \
459
+ "optimization_needed" "true"
460
+
461
+ # Prepare content optimization feedback
462
+ prepare_seo_optimization_feedback
463
+ fi
464
+ ```
465
+
466
+ ### SEO Specialist Completion Protocol (Mode-Specific)
467
+
468
+ ```bash
469
+ # CLI Mode Completion Signal (REQUIRED for CLI-spawned SEO specialists)
470
+ signal_seo_specialist_completion() {
471
+ local confidence="$1"
472
+ local deliverables="$2"
473
+ local specialist_type="$3"
474
+
475
+ if [[ -n "${TASK_ID:-}" && -n "${AGENT_ID:-}" ]]; then
476
+ # Signal specialist completion
477
+ redis-cli lpush "swarm:${TASK_ID}:${AGENT_ID}:done" "complete"
478
+
479
+ # Store SEO-specific confidence and deliverables
480
+ redis-cli HSET "seo_campaign:${TASK_ID}:confidence:${AGENT_ID}" \
481
+ "confidence" "$confidence" \
482
+ "specialist_type" "$specialist_type" \
483
+ "deliverables_created" "$deliverables" \
484
+ "reported_at" "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
485
+
486
+ # Use coordination script for structured reporting
487
+ ./.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh report \
488
+ --task-id "$TASK_ID" \
489
+ --agent-id "$AGENT_ID" \
490
+ --confidence "$confidence" \
491
+ --iteration 1 \
492
+ --result '{"deliverables": '"$deliverables"', "specialist_type": "'"$specialist_type"'"}'
493
+ fi
494
+ }
495
+
496
+ # Task Mode (if spawned via Task() in Main Chat)
497
+ # Simply return JSON response - no Redis signals needed
498
+ ```
499
+
500
+ ### SEO Pipeline Progress Monitoring
501
+
502
+ ```bash
503
+ # Monitor SEO pipeline progress in real-time
504
+ monitor_seo_pipeline_progress() {
505
+ local task_id="$1"
506
+
507
+ while true; do
508
+ echo "=== SEO Pipeline Status ==="
509
+
510
+ # Check each pipeline step
511
+ for step in keyword-research competitor-analysis content-outline research seo-writing seo-optimization validation schema-generation; do
512
+ step_status=$(redis-cli HGET "seo_campaign:${task_id}:step:${step}" "status" 2>/dev/null || echo "not_started")
513
+ echo " ${step}: ${step_status}"
514
+ done
515
+
516
+ # Overall pipeline confidence
517
+ overall_confidence=$(redis-cli HGET "seo_campaign:${task_id}:validation_gate" "confidence" 2>/dev/null || echo "0.00")
518
+ echo " Overall Confidence: ${overall_confidence}"
519
+
520
+ # Cost optimization status
521
+ cost_savings=$(redis-cli HGET "seo_campaign:${task_id}:config" "cost_optimization")
522
+ echo " Cost Optimization: ${cost_savings:-disabled}"
523
+
524
+ echo ""
525
+ sleep 30
526
+ done
527
+ }
528
+
529
+ # Enable swarm recovery for SEO campaigns
530
+ recover_seo_campaign() {
531
+ local task_id="$1"
532
+
533
+ # Restore campaign context
534
+ CAMPAIGN_CONTEXT=$(redis-cli HGETALL "seo_campaign:${task_id}:context" | jq -s 'reduce .[] as $item ({}; . + $item)')
535
+
536
+ echo "🔄 Recovering SEO Campaign: $(echo "$CAMPAIGN_CONTEXT" | jq -r '.target_keyword')"
537
+ echo " Campaign Type: $(echo "$CAMPAIGN_CONTEXT" | jq -r '.campaign_type')"
538
+ echo " Last Iteration: $(echo "$CAMPAIGN_CONTEXT" | jq -r '.iteration')"
539
+
540
+ # Resume from last completed step
541
+ LAST_COMPLETED_STEP=$(redis-cli HGETALL "seo_campaign:${task_id}:step:*" | grep "completed" | tail -1 | cut -d: -f3)
542
+ if [ -n "$LAST_COMPLETED_STEP" ]; then
543
+ echo " Resuming from: ${LAST_COMPLETED_STEP}"
544
+ fi
545
+ }
546
+ ```
547
+
548
+ ## Progress Monitoring
549
+
550
+ The Redis coordination system tracks all SEO specialist progress and validation results in real-time:
551
+
552
+ - **Specialist Progress**: Track each SEO pipeline step completion status
553
+ - **Confidence Scores**: Monitor quality gate thresholds for content validation
554
+ - **Cost Optimization**: Z.ai routing enabled for all SEO specialists (95% cost savings)
555
+ - **Swarm Recovery**: SEO campaign state survives disconnections and can be resumed
556
+
557
+ Status updates and progress monitoring are handled automatically through the Redis coordination layer.
558
+
307
559
  ## CLI Mode Cost Optimization
308
560
 
309
561
  **Agent Spawning Pattern:**
@@ -329,7 +581,7 @@ npx claude-flow-novice agent-spawn seo-analytics-specialist \
329
581
  # Fallback to manual steps
330
582
  if [ -z "$DATAFORSEO_EMAIL" ]; then
331
583
  echo "Warning: DataForSEO not configured - Manual keyword research required"
332
- redis-cli HSET "seo:task:$TASK_ID:warnings" dataforseo "manual_research_required"
584
+ echo "manual_research_required" > warnings/dataforseo.txt
333
585
  fi
334
586
  ```
335
587
 
@@ -338,27 +590,20 @@ fi
338
590
  # Check orchestrator health
339
591
  if ! ps -p $ORCHESTRATOR_PID > /dev/null 2>&1; then
340
592
  echo "Error: Orchestrator process died unexpectedly"
341
- redis-cli HSET "seo:task:$TASK_ID:status" orchestrator_status "failed"
593
+ echo "failed" > status/orchestrator_status.txt
342
594
  exit 1
343
595
  fi
344
596
  ```
345
597
 
346
- ## Integration with CFN Loop
347
-
348
- **Not a CFN Loop Coordinator:**
349
- - SEO pipeline is specialized (8-step sequential, not 3-loop validation)
350
- - No Loop 3/Loop 2/Product Owner pattern
351
- - Uses custom validation (3 validators with ≥0.95 consensus)
598
+ ## SEO Pipeline Characteristics
352
599
 
353
- **Similarities:**
600
+ **SEO Pipeline Features:**
601
+ - Specialized SEO workflow (8-step sequential process)
602
+ - Custom validation approach (3 validators with ≥0.95 average score)
354
603
  - CLI spawning for cost optimization
355
- - Redis coordination
356
604
  - Iteration-based improvement
357
605
  - Confidence-based progression
358
606
 
359
- **When to Use CFN Loop vs SEO Pipeline:**
360
- - CFN Loop: Generic software development, features, bugs
361
- - SEO Pipeline: SEO content creation specifically
362
607
 
363
608
  ## Workflow Example
364
609
 
@@ -371,7 +616,7 @@ fi
371
616
  - Brand: "OurStories"
372
617
  - Audience: "families, genealogists" (inferred)
373
618
  3. Validate APIs: DataForSEO ✅, OpenRouter ✅
374
- 4. Store context in Redis
619
+ 4. Set context environment variables
375
620
  5. Invoke orchestrator:
376
621
  ```bash
377
622
  ./.claude/skills/seo-orchestration/orchestrate-seo.sh \
@@ -391,7 +636,7 @@ fi
391
636
  - Step 4: Perplexity research (gather sources)
392
637
  - Step 5: Write 1500+ word draft
393
638
  - Step 6: SEO optimize (title tag, meta, headers, internal links)
394
- - Step 7: Validate (humanizer + branding + audience ≥0.95 consensus)
639
+ - Step 7: Validate (humanizer + branding + audience ≥0.95 average)
395
640
  - Step 8: Publish with Article schema
396
641
 
397
642
  **Final Output:** `content/blog/preserve-family-stories.md` with full schema markup
@@ -406,5 +651,5 @@ fi
406
651
  ---
407
652
 
408
653
  **Version:** 1.0.0
409
- **Last Updated:** 2025-11-01
410
- **Maintained By:** CFN SEO Team
654
+ **Last Updated:** 2025-11-07
655
+ **Maintained By:** CFN SEO Team