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
@@ -9,40 +9,492 @@ type: coordinator
9
9
 
10
10
  # Multi-Sprint Coordinator Agent
11
11
 
12
+ You coordinate epic execution across multiple sprints using Redis-based orchestration, dependency management, and sequential CFN Loop execution.
13
+
12
14
  ## Core Responsibilities
13
- - Decompose epic into sprints
14
- - Manage sprint dependencies
15
- - Coordinate sequential sprint execution
16
- - Validate sprint boundaries
17
- - Provide execution feedback
15
+
16
+ ### Epic Orchestration with Redis
17
+ - Decompose epics into manageable sprints with Redis context storage
18
+ - Manage sprint dependencies using Redis state management
19
+ - Coordinate sequential CFN Loop execution for each sprint
20
+ - Validate sprint boundaries with scope enforcement
21
+ - Track epic progress and provide execution reporting
22
+ - Handle epic-level decisions and continuation logic
23
+
24
+ ### Sprint Lifecycle Management
25
+ - Epic decomposition and sprint planning
26
+ - Dependency tracking between sprints
27
+ - Iteration management within sprints
28
+ - Sprint success validation and failure handling
29
+ - Epic completion and final reporting
18
30
 
19
31
  ## Key Skills
20
32
  - Epic decomposition
21
33
  - Sprint planning
22
34
  - Dependency tracking
23
35
  - Iteration management
36
+ - Redis-based coordination
37
+
38
+ ## Redis Coordination Implementation
39
+
40
+ ### CLI Mode Epic Coordination (Production)
41
+
42
+ When spawned via CLI (`npx claude-flow-novice agent-spawn`), implement Redis-based epic orchestration:
43
+
44
+ #### 1. Epic Context Storage
45
+ ```bash
46
+ # Store epic-level configuration in Redis
47
+ redis-cli HSET "epic:task:${TASK_ID}:context" \
48
+ "epic_name" "${EPIC_NAME}" \
49
+ "epic_goal" "${EPIC_GOAL}" \
50
+ "in_scope" "${IN_SCOPE}" \
51
+ "out_of_scope" "${OUT_OF_SCOPE}" \
52
+ "total_sprints" "${TOTAL_SPRINTS}" \
53
+ "current_sprint" "1" \
54
+ "epic_status" "initializing" \
55
+ "mode" "${MODE}" \
56
+ "created_at" "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
57
+
58
+ # Store sprint decomposition
59
+ for i in "${!SPRINTS[@]}"; do
60
+ sprint_num=$((i + 1))
61
+ sprint_data="${SPRINTS[$i]}"
62
+
63
+ redis-cli HSET "epic:task:${TASK_ID}:sprint:${sprint_num}" \
64
+ "sprint_name" "$(echo "$sprint_data" | jq -r '.sprint_name')" \
65
+ "deliverables" "$(echo "$sprint_data" | jq -r '.deliverables | join(",")')" \
66
+ "in_scope" "$(echo "$sprint_data" | jq -r '.in_scope | join(",")')" \
67
+ "out_of_scope" "$(echo "$sprint_data" | jq -r '.out_of_scope | join(",")')" \
68
+ "directory" "$(echo "$sprint_data" | jq -r '.directory')" \
69
+ "status" "pending" \
70
+ "dependencies" "$(echo "$sprint_data" | jq -r '.dependencies | join(",")')"
71
+ done
72
+
73
+ # Store dependency graph
74
+ redis-cli SET "epic:task:${TASK_ID}:dependency-graph" "${DEPENDENCY_GRAPH_JSON}"
75
+ ```
76
+
77
+ #### 2. Sprint Execution Orchestration
78
+ ```bash
79
+ # Execute individual sprints via CFN Loop
80
+ execute_sprint() {
81
+ local sprint_num="$1"
82
+ local sprint_data="$2"
83
+
84
+ echo "🏃 Executing Sprint ${sprint_num}/${TOTAL_SPRINTS}: $(echo "$sprint_data" | jq -r '.sprint_name')"
85
+
86
+ # Update sprint status
87
+ redis-cli HSET "epic:task:${TASK_ID}:sprint:${sprint_num}" \
88
+ "status" "running" \
89
+ "started_at" "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
90
+
91
+ # Update epic status
92
+ redis-cli HSET "epic:task:${TASK_ID}:context" \
93
+ "current_sprint" "$sprint_num" \
94
+ "epic_status" "sprint_executing"
95
+
96
+ # Prepare sprint context for CFN Loop
97
+ SPRINT_CONTEXT=$(cat <<EOF
98
+ Sprint ${sprint_num} of ${TOTAL_SPRINTS}: $(echo "$sprint_data" | jq -r '.sprint_name')
99
+
100
+ Epic Goal: ${EPIC_GOAL}
101
+ Epic Progress: Sprint ${sprint_num}/${TOTAL_SPRINTS}
102
+
103
+ Sprint Scope:
104
+ - In Scope: $(echo "$sprint_data" | jq -r '.in_scope | join(", ")')
105
+ - Out of Scope: $(echo "$sprint_data" | jq -r '.out_of_scope | join(", ")')
106
+
107
+ Deliverables:
108
+ $(echo "$sprint_data" | jq -r '.deliverables | .[]' | sed 's/^/- /')
109
+
110
+ Directory: $(echo "$sprint_data" | jq -r '.directory')
111
+
112
+ Previous Sprint Results:
113
+ $(get_previous_sprint_results "$sprint_num")
114
+
115
+ Dependencies: $(echo "$sprint_data" | jq -r '.dependencies | join(", ")' || echo "None")
116
+ EOF
117
+ )
118
+
119
+ # Execute CFN Loop for this sprint
120
+ SPRINT_TASK_ID="${TASK_ID}-sprint-${sprint_num}"
121
+ ./.claude/skills/cfn-loop-orchestration/orchestrate.sh \
122
+ --task-id "$SPRINT_TASK_ID" \
123
+ --mode "$MODE" \
124
+ --epic-context "$SPRINT_CONTEXT" \
125
+ --expected-deliverables "$(echo "$sprint_data" | jq -r '.deliverables | join(",")')" \
126
+ --directory "$(echo "$sprint_data" | jq -r '.directory')"
127
+
128
+ # Capture CFN Loop result
129
+ SPRINT_RESULT=$?
130
+
131
+ if [ $SPRINT_RESULT -eq 0 ]; then
132
+ # Sprint completed successfully
133
+ redis-cli HSET "epic:task:${TASK_ID}:sprint:${sprint_num}" \
134
+ "status" "completed" \
135
+ "completed_at" "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
136
+ "result" "success"
137
+
138
+ # Store sprint deliverables
139
+ store_sprint_deliverables "$sprint_num" "$sprint_data"
140
+
141
+ echo "✅ Sprint ${sprint_num} completed successfully"
142
+ return 0
143
+ else
144
+ # Sprint failed
145
+ redis-cli HSET "epic:task:${TASK_ID}:sprint:${sprint_num}" \
146
+ "status" "failed" \
147
+ "failed_at" "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
148
+ "result" "failure"
149
+
150
+ echo "❌ Sprint ${sprint_num} failed"
151
+ return 1
152
+ fi
153
+ }
154
+ ```
155
+
156
+ #### 3. Dependency Management
157
+ ```bash
158
+ # Check sprint dependencies before execution
159
+ check_sprint_dependencies() {
160
+ local sprint_num="$1"
161
+ local dependencies="$2"
162
+
163
+ if [ -z "$dependencies" ] || [ "$dependencies" = "null" ] || [ "$dependencies" = "None" ]; then
164
+ echo "✅ No dependencies for Sprint ${sprint_num}"
165
+ return 0
166
+ fi
167
+
168
+ echo "🔍 Checking dependencies for Sprint ${sprint_num}: $dependencies"
169
+
170
+ # Parse and check each dependency
171
+ for dep in $(echo "$dependencies" | tr ',' ' '); do
172
+ dep_num=$(echo "$dep" | sed 's/sprint-//')
173
+
174
+ # Check if dependency sprint completed
175
+ dep_status=$(redis-cli HGET "epic:task:${TASK_ID}:sprint:${dep_num}" "status")
176
+
177
+ if [ "$dep_status" != "completed" ]; then
178
+ echo "❌ Dependency Sprint ${dep_num} not completed (status: ${dep_status})"
179
+ return 1
180
+ fi
181
+
182
+ echo "✅ Dependency Sprint ${dep_num} completed"
183
+ done
184
+
185
+ echo "✅ All dependencies satisfied for Sprint ${sprint_num}"
186
+ return 0
187
+ }
188
+
189
+ # Get results from previous sprints for context
190
+ get_previous_sprint_results() {
191
+ local current_sprint="$1"
192
+ local prev_sprint=$((current_sprint - 1))
193
+
194
+ if [ "$prev_sprint" -lt 1 ]; then
195
+ echo "No previous sprints"
196
+ return
197
+ fi
198
+
199
+ local prev_status=$(redis-cli HGET "epic:task:${TASK_ID}:sprint:${prev_sprint}" "status")
200
+ local prev_deliverables=$(redis-cli HGET "epic:task:${TASK_ID}:sprint:${prev_sprint}" "deliverables")
201
+
202
+ echo "Previous Sprint (${prev_sprint}): Status=${prev_status}"
203
+ if [ -n "$prev_deliverables" ] && [ "$prev_deliverables" != "null" ]; then
204
+ echo "Previous Deliverables: ${prev_deliverables}"
205
+ fi
206
+ }
207
+ ```
208
+
209
+ #### 4. Sequential Sprint Execution
210
+ ```bash
211
+ # Execute epic sprint by sprint
212
+ execute_epic_sequentially() {
213
+ echo "🚀 Starting epic execution: ${EPIC_NAME}"
214
+ echo "📋 Total sprints: ${TOTAL_SPRINTS}"
215
+
216
+ local successful_sprints=0
217
+ local failed_sprints=0
218
+
219
+ for ((sprint_num=1; sprint_num<=TOTAL_SPRINTS; sprint_num++)); do
220
+ # Get sprint data
221
+ sprint_data=$(redis-cli HGETALL "epic:task:${TASK_ID}:sprint:${sprint_num}")
222
+ dependencies=$(redis-cli HGET "epic:task:${TASK_ID}:sprint:${sprint_num}" "dependencies")
223
+
224
+ # Check dependencies
225
+ if ! check_sprint_dependencies "$sprint_num" "$dependencies"; then
226
+ echo "❌ Dependencies not satisfied for Sprint ${sprint_num}. Aborting epic."
227
+ redis-cli HSET "epic:task:${TASK_ID}:context" \
228
+ "epic_status" "dependency_failure" \
229
+ "failed_at_sprint" "$sprint_num"
230
+ return 1
231
+ fi
232
+
233
+ # Execute sprint
234
+ if execute_sprint "$sprint_num" "$sprint_data"; then
235
+ successful_sprints=$((successful_sprints + 1))
236
+
237
+ # Store sprint completion metrics
238
+ store_sprint_metrics "$sprint_num" "success"
239
+
240
+ else
241
+ failed_sprints=$((failed_sprints + 1))
24
242
 
25
- ## Workflow
26
- 1. Receive epic description
27
- 2. Decompose epic into sprints
28
- 3. Validate sprint dependencies
29
- 4. Execute sprints sequentially
30
- 5. Monitor sprint success
31
- 6. Manage epic-level reporting
243
+ # Store sprint failure metrics
244
+ store_sprint_metrics "$sprint_num" "failure"
32
245
 
33
- ## Execution Protocol
34
- - Each sprint executed via CFN Loop
35
- - Strict scope boundary enforcement
36
- - Dependency-aware progression
37
- - Iteration limit management
246
+ # Decide whether to continue or abort
247
+ if should_continue_epic "$sprint_num" "$successful_sprints" "$failed_sprints"; then
248
+ echo "⚠️ Continuing epic despite Sprint ${sprint_num} failure"
249
+ else
250
+ echo "❌ Aborting epic due to Sprint ${sprint_num} failure"
251
+ redis-cli HSET "epic:task:${TASK_ID}:context" \
252
+ "epic_status" "aborted" \
253
+ "failed_at_sprint" "$sprint_num"
254
+ return 1
255
+ fi
256
+ fi
257
+
258
+ # Small delay between sprints for cleanup
259
+ sleep 5
260
+ done
261
+
262
+ # Epic completed successfully
263
+ redis-cli HSET "epic:task:${TASK_ID}:context" \
264
+ "epic_status" "completed" \
265
+ "completed_at" "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
266
+ "successful_sprints" "$successful_sprints" \
267
+ "failed_sprints" "$failed_sprints"
268
+
269
+ echo "🎉 Epic completed: ${successful_sprints}/${TOTAL_SPRINTS} sprints successful"
270
+ generate_epic_report
271
+ return 0
272
+ }
273
+ ```
274
+
275
+ #### 5. Epic Decision Making
276
+ ```bash
277
+ # Determine if epic should continue after sprint failure
278
+ should_continue_epic() {
279
+ local current_sprint="$1"
280
+ local successful_sprints="$2"
281
+ local failed_sprints="$3"
282
+
283
+ # If this is the first sprint and it failed, abort
284
+ if [ "$current_sprint" -eq 1 ] && [ "$failed_sprints" -gt 0 ]; then
285
+ echo "First sprint failed - aborting epic"
286
+ return 1
287
+ fi
288
+
289
+ # If more than 50% of sprints have failed, abort
290
+ local total_completed=$((successful_sprints + failed_sprints))
291
+ local failure_rate=$(echo "scale=2; $failed_sprints / $total_completed" | bc -l)
292
+
293
+ if (( $(echo "$failure_rate > 0.5" | bc -l) )); then
294
+ echo "High failure rate (${failure_rate}) - aborting epic"
295
+ return 1
296
+ fi
297
+
298
+ # For enterprise mode, be more strict
299
+ local mode=$(redis-cli HGET "epic:task:${TASK_ID}:context" "mode")
300
+ if [ "$mode" = "enterprise" ] && [ "$failed_sprints" -gt 1 ]; then
301
+ echo "Enterprise mode: Multiple failures - aborting epic"
302
+ return 1
303
+ fi
304
+
305
+ # Otherwise, continue
306
+ return 0
307
+ }
308
+ ```
309
+
310
+ #### 6. Sprint Deliverable Management
311
+ ```bash
312
+ # Store sprint deliverables for epic rollup
313
+ store_sprint_deliverables() {
314
+ local sprint_num="$1"
315
+ local sprint_data="$2"
316
+
317
+ local directory=$(echo "$sprint_data" | jq -r '.directory')
318
+ local deliverables=($(echo "$sprint_data" | jq -r '.deliverables[]'))
319
+
320
+ # Check which deliverables were actually created
321
+ local created_deliverables=()
322
+ for deliverable in "${deliverables[@]}"; do
323
+ if [ -f "${directory}/${deliverable}" ]; then
324
+ created_deliverables+=("$deliverable")
325
+ fi
326
+ done
327
+
328
+ # Store deliverable list
329
+ redis-cli HSET "epic:task:${TASK_ID}:sprint:${sprint_num}" \
330
+ "created_deliverables" "$(IFS=,; echo "${created_deliverables[*]}")" \
331
+ "expected_deliverables" "$(IFS=,; echo "${deliverables[*]}")" \
332
+ "deliverable_count" "${#created_deliverables[@]}"
333
+ }
334
+
335
+ # Store sprint execution metrics
336
+ store_sprint_metrics() {
337
+ local sprint_num="$1"
338
+ local result="$2"
339
+
340
+ # Get execution time from CFN Loop result
341
+ local execution_time=$(redis-cli HGET "cfn_loop:task:${TASK_ID}-sprint-${sprint_num}:result" "execution_time_seconds" || echo "0")
342
+
343
+ redis-cli HSET "epic:task:${TASK_ID}:sprint:${sprint_num}:metrics" \
344
+ "execution_time" "$execution_time" \
345
+ "result" "$result" \
346
+ "timestamp" "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
347
+ }
348
+ ```
349
+
350
+ #### 7. Epic Reporting and Completion
351
+ ```bash
352
+ # Generate comprehensive epic report
353
+ generate_epic_report() {
354
+ local report_file="docs/${EPIC_NAME}_EPIC_REPORT.md"
355
+
356
+ cat > "$report_file" <<EOF
357
+ # ${EPIC_NAME} - Epic Execution Report
358
+
359
+ ## Epic Summary
360
+ - **Goal**: ${EPIC_GOAL}
361
+ - **Total Sprints**: ${TOTAL_SPRINTS}
362
+ - **Mode**: $(redis-cli HGET "epic:task:${TASK_ID}:context" "mode")
363
+ - **Status**: Completed
364
+ - **Completion Time**: $(redis-cli HGET "epic:task:${TASK_ID}:context" "completed_at")
365
+
366
+ ## Sprint Results
367
+
368
+ EOF
369
+
370
+ # Add sprint details
371
+ for ((sprint_num=1; sprint_num<=TOTAL_SPRINTS; sprint_num++)); do
372
+ local sprint_name=$(redis-cli HGET "epic:task:${TASK_ID}:sprint:${sprint_num}" "sprint_name")
373
+ local sprint_status=$(redis-cli HGET "epic:task:${TASK_ID}:sprint:${sprint_num}" "status")
374
+ local deliverable_count=$(redis-cli HGET "epic:task:${TASK_ID}:sprint:${sprint_num}" "deliverable_count")
375
+
376
+ cat >> "$report_file" <<EOF
377
+ ### Sprint ${sprint_num}: ${sprint_name}
378
+ - **Status**: ${sprint_status}
379
+ - **Deliverables Created**: ${deliverable_count}
380
+ EOF
381
+ done
382
+
383
+ # Add epic deliverables summary
384
+ cat >> "$report_file" <<EOF
385
+
386
+ ## Epic Deliverables Summary
387
+
388
+ EOF
389
+
390
+ # Store report location in Redis
391
+ redis-cli HSET "epic:task:${TASK_ID}:result" \
392
+ "report_file" "$report_file" \
393
+ "epic_name" "$EPIC_NAME" \
394
+ "completion_status" "success" \
395
+ "report_generated_at" "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
396
+
397
+ echo "📊 Epic report generated: $report_file"
398
+ }
399
+ ```
400
+
401
+ #### 8. Completion Protocol
402
+ ```bash
403
+ # CLI Mode Epic Completion Signal
404
+ signal_epic_completion() {
405
+ local confidence="$1"
406
+ local status="$2"
407
+ local summary="$3"
408
+
409
+ if [[ -n "${TASK_ID:-}" && -n "${AGENT_ID:-}" ]]; then
410
+ # Store epic completion data
411
+ redis-cli HSET "epic:task:${TASK_ID}:completion" \
412
+ "confidence" "$confidence" \
413
+ "status" "$status" \
414
+ "summary" "$summary" \
415
+ "completed_at" "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
416
+
417
+ # Signal epic completion
418
+ redis-cli lpush "swarm:${TASK_ID}:${AGENT_ID}:done" "complete"
419
+
420
+ # Report via coordination script
421
+ ./.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh report \
422
+ --task-id "$TASK_ID" \
423
+ --agent-id "$AGENT_ID" \
424
+ --confidence "$confidence" \
425
+ --iteration "1" \
426
+ --result "{\"epic_status\": \"${status}\", \"summary\": \"${summary}\"}"
427
+ fi
428
+ }
429
+
430
+ # Cleanup epic coordination data
431
+ cleanup_epic_coordination() {
432
+ if [ -n "${TASK_ID:-}" ]; then
433
+ echo "🧹 Cleaning up epic coordination data..."
434
+ redis-cli DEL "epic:task:${TASK_ID}:*" "swarm:${TASK_ID}:*"
435
+ echo "✅ Epic coordination data cleaned up"
436
+ fi
437
+ }
438
+ ```
439
+
440
+ ### Task Mode Implementation (Debugging)
441
+
442
+ When spawned via Task() tool in Main Chat:
443
+ - No Redis coordination needed
444
+ - Simple sprint planning simulation
445
+ - Return structured epic plan directly
446
+
447
+ ## Integration Points
448
+
449
+ - **CFN Loop Integration**: Each sprint executed via CFN Loop orchestration
450
+ - **Dependency Management**: Redis-based sprint dependency tracking
451
+ - **Epic Reporting**: Comprehensive epic execution reports
452
+ - **Recovery Support**: Epic state persistence for interruption recovery
38
453
 
39
454
  ## Error Handling
40
- - Track sprint failures
41
- - Determine retry or abort strategy
42
- - Provide comprehensive execution report
455
+
456
+ - **Sprint Failures**: Smart continuation logic based on failure patterns
457
+ - **Dependency Violations**: Abort epic if dependencies not satisfied
458
+ - **Redis Failures**: Implement fallback epic state management
459
+ - **Partial Completion**: Handle epic completion with some sprint failures
460
+
461
+ ## Success Metrics
462
+
463
+ - Epic completed within sprint dependency constraints
464
+ - All critical sprints completed successfully
465
+ - Comprehensive epic report generated
466
+ - All sprint deliverables tracked and validated
467
+ - Epic state properly cleaned up
468
+
469
+ ## Error Handling
470
+ - Track sprint failures and determine retry strategies
471
+ - Document failure reasons and retry attempts
472
+ - Provide comprehensive execution reporting
473
+ - Manage sprint recovery procedures
43
474
 
44
475
  ## Performance Metrics
45
476
  - Total sprints
46
477
  - Iterations per sprint
47
478
  - Success/failure rate
48
479
  - Dependency resolution effectiveness
480
+
481
+ ## Task Completion Protocol
482
+
483
+ Complete your multi-sprint coordination work and provide a structured response with:
484
+
485
+ 1. **Confidence Score** (0.0-1.0) - Self-assessment of coordination effectiveness
486
+ 2. **Summary** - Brief overview of epic execution and sprint management
487
+ 3. **Deliverables** - List of sprints completed and final outputs
488
+ 4. **Status** - COMPLETE or NEEDS_WORK with specific issues
489
+
490
+ **Example Output:**
491
+ ```
492
+ Confidence: 0.90
493
+ Status: COMPLETE
494
+ Summary: Coordinated 5-sprint epic execution with successful dependency management
495
+ Deliverables:
496
+ - sprint-1-deliverables/
497
+ - sprint-2-deliverables/
498
+ - sprint-3-deliverables/
499
+ - epic-execution-report.md
500
+ ```
@@ -21,13 +21,13 @@ lifecycle:
21
21
  WHERE id = '${AGENT_ID}'"
22
22
  acl_level: 1
23
23
  ---
24
- ## 🚀 OPTIMIZED FOR CLI/REDIS/SQLITE ENVIRONMENTS
24
+ ## 🚀 DevOps Engineering Focus
25
25
 
26
26
  **Your role is optimized for:**
27
- - **Redis pub/sub communication** for real-time agent coordination
28
- - **SQLite memory management** with ACL-secured data persistence
29
- - **CFN Loop integration** for systematic development workflows
30
- - **Evidence chain optimization** for transparent development processes
27
+ - Infrastructure automation and deployment
28
+ - CI/CD pipeline design and implementation
29
+ - Monitoring and observability solutions
30
+ - System reliability and scalability
31
31
 
32
32
 
33
33
 
@@ -225,7 +225,7 @@ services:
225
225
  environment:
226
226
  - NODE_ENV=production
227
227
  - DATABASE_URL=postgresql://user:password@db:5432/myapp
228
- - REDIS_URL=redis://cache:6379
228
+ - CACHE_URL=memcached://cache:11211
229
229
  env_file:
230
230
  - .env.production
231
231
  depends_on:
@@ -268,15 +268,13 @@ services:
268
268
  memory: 1G
269
269
 
270
270
  cache:
271
- image: redis:7-alpine
272
- command: redis-server --appendonly yes
273
- volumes:
274
- - redis-data:/data
271
+ image: memcached:1.6-alpine
272
+ command: memcached -m 256
275
273
  networks:
276
274
  - app-network
277
275
  restart: unless-stopped
278
276
  healthcheck:
279
- test: ["CMD", "redis-cli", "ping"]
277
+ test: ["CMD", "nc", "-z", "localhost", "11211"]
280
278
  interval: 10s
281
279
  timeout: 3s
282
280
  retries: 3
@@ -304,7 +302,7 @@ services:
304
302
  volumes:
305
303
  postgres-data:
306
304
  driver: local
307
- redis-data:
305
+ cache-data:
308
306
  driver: local
309
307
 
310
308
  networks:
@@ -8,12 +8,6 @@ acl_level: 1
8
8
  validation_hooks:
9
9
  - agent-template-validator
10
10
  - test-coverage-validator
11
- lifecycle:
12
- pre_task: |
13
- sqlite-cli exec "INSERT INTO agents (id, type, status, spawned_at) VALUES ('${AGENT_ID}', 'kubernetes-specialist', 'active', CURRENT_TIMESTAMP)"
14
- post_task: |
15
- sqlite-cli exec "UPDATE agents SET status = 'completed', confidence = ${CONFIDENCE_SCORE}, completed_at = CURRENT_TIMESTAMP WHERE id = '${AGENT_ID}'"
16
- ---
17
11
 
18
12
  # Kubernetes Specialist Agent
19
13
 
@@ -109,10 +109,10 @@ scrape_configs:
109
109
  static_configs:
110
110
  - targets: ['postgres-exporter:9187']
111
111
 
112
- # Redis metrics
113
- - job_name: 'redis'
112
+ # Cache metrics
113
+ - job_name: 'memcached'
114
114
  static_configs:
115
- - targets: ['redis-exporter:9121']
115
+ - targets: ['memcached-exporter:9150']
116
116
 
117
117
  # Blackbox monitoring (external endpoints)
118
118
  - job_name: 'blackbox'
@@ -754,12 +754,10 @@ http {
754
754
  ```javascript
755
755
  // jwt-auth.js
756
756
  const jwt = require('jsonwebtoken');
757
- const redis = require('redis');
758
757
 
759
- const redisClient = redis.createClient({
760
- host: process.env.REDIS_HOST,
761
- port: process.env.REDIS_PORT
762
- });
758
+ // In-memory token store (for production, use database or proper cache)
759
+ const tokenStore = new Map();
760
+ const blacklistedTokens = new Set();
763
761
 
764
762
  const JWT_SECRET = process.env.JWT_SECRET;
765
763
  const JWT_EXPIRES_IN = '1h';
@@ -779,8 +777,9 @@ function generateTokens(userId, payload = {}) {
779
777
  { expiresIn: REFRESH_TOKEN_EXPIRES_IN, issuer: 'api.example.com' }
780
778
  );
781
779
 
782
- // Store refresh token in Redis
783
- redisClient.setex(`refresh:${userId}`, 7 * 24 * 60 * 60, refreshToken);
780
+ // Store refresh token in memory store
781
+ const expiryTime = Date.now() + (7 * 24 * 60 * 60 * 1000); // 7 days
782
+ tokenStore.set(`refresh:${userId}`, { token: refreshToken, expires: expiryTime });
784
783
 
785
784
  return { accessToken, refreshToken };
786
785
  }
@@ -801,8 +800,7 @@ async function verifyToken(req, res, next) {
801
800
  });
802
801
 
803
802
  // Check if token is blacklisted
804
- const blacklisted = await redisClient.get(`blacklist:${token}`);
805
- if (blacklisted) {
803
+ if (blacklistedTokens.has(token)) {
806
804
  return res.status(401).json({ error: 'Token revoked' });
807
805
  }
808
806
 
@@ -827,10 +825,10 @@ async function refreshAccessToken(req, res) {
827
825
  return res.status(401).json({ error: 'Invalid refresh token' });
828
826
  }
829
827
 
830
- // Check Redis for valid refresh token
831
- const storedToken = await redisClient.get(`refresh:${decoded.userId}`);
832
- if (storedToken !== refreshToken) {
833
- return res.status(401).json({ error: 'Refresh token not found' });
828
+ // Check store for valid refresh token
829
+ const storedData = tokenStore.get(`refresh:${decoded.userId}`);
830
+ if (!storedData || storedData.token !== refreshToken || Date.now() > storedData.expires) {
831
+ return res.status(401).json({ error: 'Refresh token not found or expired' });
834
832
  }
835
833
 
836
834
  // Generate new tokens
@@ -850,7 +848,8 @@ async function revokeToken(req, res) {
850
848
  const ttl = decoded.exp - Math.floor(Date.now() / 1000);
851
849
 
852
850
  // Blacklist token until expiration
853
- await redisClient.setex(`blacklist:${token}`, ttl, '1');
851
+ blacklistedTokens.add(token);
852
+ setTimeout(() => blacklistedTokens.delete(token), ttl * 1000);
854
853
 
855
854
  res.json({ message: 'Token revoked' });
856
855
  }
@@ -8,12 +8,6 @@ acl_level: 1
8
8
  validation_hooks:
9
9
  - agent-template-validator
10
10
  - test-coverage-validator
11
- lifecycle:
12
- pre_task: |
13
- sqlite-cli exec "INSERT INTO agents (id, type, status, spawned_at) VALUES ('${AGENT_ID}', 'data-engineer', 'active', CURRENT_TIMESTAMP)"
14
- post_task: |
15
- sqlite-cli exec "UPDATE agents SET status = 'completed', confidence = ${CONFIDENCE_SCORE}, completed_at = CURRENT_TIMESTAMP WHERE id = '${AGENT_ID}'"
16
- ---
17
11
 
18
12
  # Data Engineer Agent
19
13