claude-flow-novice 2.14.29 → 2.14.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/cfn-agents-ignore/cfn-seo-team/AGENT_CREATION_REPORT.md +4 -14
- package/.claude/cfn-agents-ignore/cfn-seo-team/AGENT_CREATION_REPORT.md.backup +481 -0
- package/.claude/cfn-agents-ignore/cfn-seo-team/DELEGATION_MATRIX.md +3 -4
- package/.claude/cfn-agents-ignore/cfn-seo-team/DELEGATION_MATRIX.md.backup +371 -0
- package/.claude/cfn-agents-ignore/cfn-seo-team/INTEGRATION_REQUIREMENTS.md +20 -26
- package/.claude/cfn-agents-ignore/cfn-seo-team/INTEGRATION_REQUIREMENTS.md.backup +637 -0
- package/.claude/cfn-agents-ignore/cfn-seo-team/cfn-seo-coordinator.md +295 -50
- package/.claude/cfn-agents-ignore/cfn-seo-team/cfn-seo-coordinator.md.backup +398 -0
- package/.claude/cfn-agents-ignore/cfn-seo-team/competitive-seo-analyst.md +27 -25
- package/.claude/cfn-agents-ignore/cfn-seo-team/competitive-seo-analyst.md.backup +401 -0
- package/.claude/cfn-agents-ignore/cfn-seo-team/content-atomization-specialist.md +5 -106
- package/.claude/cfn-agents-ignore/cfn-seo-team/content-atomization-specialist.md.backup +552 -0
- package/.claude/cfn-agents-ignore/cfn-seo-team/content-seo-strategist.md +5 -25
- package/.claude/cfn-agents-ignore/cfn-seo-team/content-seo-strategist.md.backup +223 -0
- package/.claude/cfn-agents-ignore/cfn-seo-team/eeat-content-auditor.md +5 -27
- package/.claude/cfn-agents-ignore/cfn-seo-team/eeat-content-auditor.md.backup +367 -0
- package/.claude/cfn-agents-ignore/cfn-seo-team/geo-optimization-expert.md +5 -27
- package/.claude/cfn-agents-ignore/cfn-seo-team/geo-optimization-expert.md.backup +247 -0
- package/.claude/cfn-agents-ignore/cfn-seo-team/link-building-specialist.md +5 -27
- package/.claude/cfn-agents-ignore/cfn-seo-team/link-building-specialist.md.backup +269 -0
- package/.claude/cfn-agents-ignore/cfn-seo-team/local-seo-optimizer.md +5 -25
- package/.claude/cfn-agents-ignore/cfn-seo-team/local-seo-optimizer.md.backup +311 -0
- package/.claude/cfn-agents-ignore/cfn-seo-team/programmatic-seo-engineer.md +6 -26
- package/.claude/cfn-agents-ignore/cfn-seo-team/programmatic-seo-engineer.md.backup +222 -0
- package/.claude/cfn-agents-ignore/cfn-seo-team/schema-markup-engineer.md +5 -25
- package/.claude/cfn-agents-ignore/cfn-seo-team/schema-markup-engineer.md.backup +408 -0
- package/.claude/cfn-agents-ignore/cfn-seo-team/seo-analytics-specialist.md +6 -26
- package/.claude/cfn-agents-ignore/cfn-seo-team/seo-analytics-specialist.md.backup +354 -0
- package/.claude/cfn-agents-ignore/cfn-seo-team/seo-validators/accessibility-validator.md +4 -4
- package/.claude/cfn-agents-ignore/cfn-seo-team/seo-validators/accessibility-validator.md.backup +561 -0
- package/.claude/cfn-agents-ignore/cfn-seo-team/seo-validators/audience-validator.md +2 -2
- package/.claude/cfn-agents-ignore/cfn-seo-team/seo-validators/audience-validator.md.backup +480 -0
- package/.claude/cfn-agents-ignore/cfn-seo-team/seo-validators/branding-validator.md +1 -1
- package/.claude/cfn-agents-ignore/cfn-seo-team/seo-validators/branding-validator.md.backup +448 -0
- package/.claude/cfn-agents-ignore/cfn-seo-team/seo-validators/humanizer-validator.md +2 -2
- package/.claude/cfn-agents-ignore/cfn-seo-team/seo-validators/humanizer-validator.md.backup +329 -0
- package/.claude/cfn-agents-ignore/cfn-seo-team/technical-seo-specialist.md +361 -199
- package/.claude/cfn-agents-ignore/cfn-seo-team/technical-seo-specialist.md.backup +208 -0
- package/.claude/commands/CFN_LOOP_TASK_MODE.md +2 -32
- package/.claude/commands/cfn-mode.md +2 -2
- package/claude-assets/agents/cfn-dev-team/CLAUDE.md +34 -23
- package/claude-assets/agents/cfn-dev-team/architecture/api-designer-persona.md +0 -7
- package/claude-assets/agents/cfn-dev-team/architecture/base-template-generator.md +7 -14
- package/claude-assets/agents/cfn-dev-team/architecture/goal-planner.md +0 -10
- package/claude-assets/agents/cfn-dev-team/architecture/planner.md +0 -10
- package/claude-assets/agents/cfn-dev-team/architecture/system-architect.md +1 -12
- package/claude-assets/agents/cfn-dev-team/coordinators/cfn-frontend-coordinator.md +337 -62
- package/claude-assets/agents/cfn-dev-team/coordinators/cfn-v3-coordinator.md +504 -484
- package/claude-assets/agents/cfn-dev-team/coordinators/consensus-builder.md +428 -171
- package/claude-assets/agents/cfn-dev-team/coordinators/multi-sprint-coordinator.md +454 -66
- package/claude-assets/agents/cfn-dev-team/dev-ops/devops-engineer.md +12 -17
- package/claude-assets/agents/cfn-dev-team/dev-ops/docker-specialist.md +15 -12
- package/claude-assets/agents/cfn-dev-team/dev-ops/github-commit-agent.md +11 -10
- package/claude-assets/agents/cfn-dev-team/dev-ops/kubernetes-specialist.md +0 -6
- package/claude-assets/agents/cfn-dev-team/dev-ops/monitoring-specialist.md +13 -8
- package/claude-assets/agents/cfn-dev-team/developers/api-gateway-specialist.md +15 -19
- package/claude-assets/agents/cfn-dev-team/developers/backend-developer.md +11 -6
- package/claude-assets/agents/cfn-dev-team/developers/data/data-engineer.md +0 -6
- package/claude-assets/agents/cfn-dev-team/developers/database/database-architect.md +4 -7
- package/claude-assets/agents/cfn-dev-team/developers/frontend/mobile-dev.md +6 -29
- package/claude-assets/agents/cfn-dev-team/developers/frontend/react-frontend-engineer.md +11 -6
- package/claude-assets/agents/cfn-dev-team/developers/frontend/typescript-specialist.md +1 -1
- package/claude-assets/agents/cfn-dev-team/developers/frontend/ui-designer.md +9 -23
- package/claude-assets/agents/cfn-dev-team/developers/graphql-specialist.md +10 -5
- package/claude-assets/agents/cfn-dev-team/developers/rust-developer.md +4 -11
- package/claude-assets/agents/cfn-dev-team/documentation/api-documentation.md +1 -1
- package/claude-assets/agents/cfn-dev-team/documentation/pseudocode.md +5 -20
- package/claude-assets/agents/cfn-dev-team/documentation/specification-agent.md +6 -16
- package/claude-assets/agents/cfn-dev-team/product-owners/accessibility-advocate-persona.md +11 -6
- package/claude-assets/agents/cfn-dev-team/product-owners/cto-agent.md +0 -5
- package/claude-assets/agents/cfn-dev-team/product-owners/power-user-persona.md +0 -3
- package/claude-assets/agents/cfn-dev-team/product-owners/product-owner.md +56 -242
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/code-quality-validator.md +2 -15
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/cyclomatic-complexity-reducer.md +4 -64
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/perf-analyzer.md +0 -11
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/performance-benchmarker.md +0 -10
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/security-specialist.md +4 -63
- package/claude-assets/agents/cfn-dev-team/reviewers/reviewer.md +231 -209
- package/claude-assets/agents/cfn-dev-team/testers/api-testing-specialist.md +0 -6
- package/claude-assets/agents/cfn-dev-team/testers/chaos-engineering-specialist.md +0 -6
- package/claude-assets/agents/cfn-dev-team/testers/e2e/playwright-tester.md +0 -14
- package/claude-assets/agents/cfn-dev-team/testers/interaction-tester.md +2 -29
- package/claude-assets/agents/cfn-dev-team/testers/load-testing-specialist.md +0 -6
- package/claude-assets/agents/cfn-dev-team/testers/playwright-tester.md +12 -28
- package/claude-assets/agents/cfn-dev-team/testers/tester.md +167 -166
- package/claude-assets/agents/cfn-dev-team/testers/unit/tdd-london-unit-swarm.md +0 -9
- package/claude-assets/agents/cfn-dev-team/testing/test-validation-agent.md +3 -3
- package/claude-assets/agents/cfn-dev-team/utility/agent-builder.md +5 -5
- package/claude-assets/agents/cfn-dev-team/utility/analyst.md +0 -7
- package/claude-assets/agents/cfn-dev-team/utility/code-booster.md +1 -38
- package/claude-assets/agents/cfn-dev-team/{coordinators → utility}/epic-creator.md +18 -58
- package/claude-assets/agents/cfn-dev-team/utility/memory-leak-specialist.md +10 -5
- package/claude-assets/agents/cfn-dev-team/utility/researcher.md +8 -34
- package/claude-assets/agents/cfn-dev-team/utility/z-ai-specialist.md +10 -5
- package/claude-assets/agents/project-only-agents/npm-package-specialist.md +9 -26
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/AGENT_CREATION_REPORT.md +4 -14
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/AGENT_CREATION_REPORT.md.backup +481 -0
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/DELEGATION_MATRIX.md +3 -4
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/DELEGATION_MATRIX.md.backup +371 -0
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/INTEGRATION_REQUIREMENTS.md +20 -26
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/INTEGRATION_REQUIREMENTS.md.backup +637 -0
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/cfn-seo-coordinator.md +295 -50
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/cfn-seo-coordinator.md.backup +398 -0
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/competitive-seo-analyst.md +27 -25
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/competitive-seo-analyst.md.backup +401 -0
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/content-atomization-specialist.md +5 -106
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/content-atomization-specialist.md.backup +552 -0
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/content-seo-strategist.md +5 -25
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/content-seo-strategist.md.backup +223 -0
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/eeat-content-auditor.md +5 -27
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/eeat-content-auditor.md.backup +367 -0
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/geo-optimization-expert.md +5 -27
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/geo-optimization-expert.md.backup +247 -0
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/link-building-specialist.md +5 -27
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/link-building-specialist.md.backup +269 -0
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/local-seo-optimizer.md +5 -25
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/local-seo-optimizer.md.backup +311 -0
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/programmatic-seo-engineer.md +6 -26
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/programmatic-seo-engineer.md.backup +222 -0
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/schema-markup-engineer.md +5 -25
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/schema-markup-engineer.md.backup +408 -0
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/seo-analytics-specialist.md +6 -26
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/seo-analytics-specialist.md.backup +354 -0
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/seo-validators/accessibility-validator.md +4 -4
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/seo-validators/accessibility-validator.md.backup +561 -0
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/seo-validators/audience-validator.md +2 -2
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/seo-validators/audience-validator.md.backup +480 -0
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/seo-validators/branding-validator.md +1 -1
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/seo-validators/branding-validator.md.backup +448 -0
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/seo-validators/humanizer-validator.md +2 -2
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/seo-validators/humanizer-validator.md.backup +329 -0
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/technical-seo-specialist.md +361 -199
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/technical-seo-specialist.md.backup +208 -0
- package/claude-assets/commands/CFN_LOOP_TASK_MODE.md +2 -32
- package/claude-assets/commands/cfn-mode.md +2 -2
- package/claude-assets/skills/agent-lifecycle/SKILL.md +60 -0
- package/claude-assets/skills/agent-lifecycle/execute-lifecycle-hook.sh +573 -0
- package/claude-assets/skills/agent-lifecycle/simple-audit.sh +31 -0
- package/package.json +1 -1
- package/readme/README.md +71 -14
|
@@ -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
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
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
|
|
185
|
-
- Main Chat monitors via web portal or
|
|
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
|
-
- **
|
|
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
|
-
|
|
201
|
-
|
|
202
|
-
|
|
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
|
|
205
|
-
|
|
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 "$
|
|
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 -
|
|
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
|
|
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
|
|
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": "
|
|
286
|
+
"monitoring": "Output logs track progress and agent status"
|
|
287
287
|
}
|
|
288
288
|
```
|
|
289
289
|
|
|
290
|
-
## Redis
|
|
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
|
-
#
|
|
295
|
-
|
|
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
|
-
|
|
298
|
-
redis-cli HGET "seo:task:$TASK_ID:status" current_step
|
|
405
|
+
### SEO Content Strategy Consensus
|
|
299
406
|
|
|
300
|
-
|
|
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
|
-
|
|
304
|
-
|
|
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
|
-
|
|
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
|
-
|
|
593
|
+
echo "failed" > status/orchestrator_status.txt
|
|
342
594
|
exit 1
|
|
343
595
|
fi
|
|
344
596
|
```
|
|
345
597
|
|
|
346
|
-
##
|
|
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
|
-
**
|
|
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.
|
|
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
|
|
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-
|
|
410
|
-
**Maintained By:** CFN SEO Team
|
|
654
|
+
**Last Updated:** 2025-11-07
|
|
655
|
+
**Maintained By:** CFN SEO Team
|