claude-flow-novice 2.14.3 → 2.14.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/.claude/commands/CFN_LOOP_TASK_MODE.md +4 -47
  2. package/.claude/commands/seo/SEO_TASK_MODE.md +892 -0
  3. package/.claude/commands/seo/seo-blog.md +428 -0
  4. package/.claude/commands/seo/seo-landing.md +91 -0
  5. package/.claude/commands/seo/seo-product.md +104 -0
  6. package/.claude/skills/cfn-redis-coordination/demos/test-cancel-swarm.sh +0 -276
  7. package/claude-assets/agents/cfn-dev-team/coordinators/epic-creator.md +120 -0
  8. package/claude-assets/agents/cfn-seo-team/AGENT_CREATION_REPORT.md +481 -0
  9. package/claude-assets/agents/cfn-seo-team/DELEGATION_MATRIX.md +371 -0
  10. package/claude-assets/agents/cfn-seo-team/HUMANIZER_PROMPTS.md +536 -0
  11. package/claude-assets/agents/cfn-seo-team/INTEGRATION_REQUIREMENTS.md +642 -0
  12. package/claude-assets/agents/cfn-seo-team/cfn-seo-coordinator.md +414 -0
  13. package/claude-assets/agents/cfn-seo-team/competitive-seo-analyst.md +423 -0
  14. package/claude-assets/agents/cfn-seo-team/content-atomization-specialist.md +580 -0
  15. package/claude-assets/agents/cfn-seo-team/content-seo-strategist.md +245 -0
  16. package/claude-assets/agents/cfn-seo-team/eeat-content-auditor.md +389 -0
  17. package/claude-assets/agents/cfn-seo-team/geo-optimization-expert.md +269 -0
  18. package/claude-assets/agents/cfn-seo-team/link-building-specialist.md +291 -0
  19. package/claude-assets/agents/cfn-seo-team/local-seo-optimizer.md +333 -0
  20. package/claude-assets/agents/cfn-seo-team/programmatic-seo-engineer.md +244 -0
  21. package/claude-assets/agents/cfn-seo-team/schema-markup-engineer.md +430 -0
  22. package/claude-assets/agents/cfn-seo-team/seo-analytics-specialist.md +376 -0
  23. package/claude-assets/agents/cfn-seo-team/seo-validators/accessibility-validator.md +565 -0
  24. package/claude-assets/agents/cfn-seo-team/seo-validators/audience-validator.md +484 -0
  25. package/claude-assets/agents/cfn-seo-team/seo-validators/branding-validator.md +452 -0
  26. package/claude-assets/agents/cfn-seo-team/seo-validators/humanizer-validator.md +333 -0
  27. package/claude-assets/agents/cfn-seo-team/technical-seo-specialist.md +228 -0
  28. package/claude-assets/commands/CFN_LOOP_TASK_MODE.md +4 -47
  29. package/claude-assets/commands/seo/SEO_TASK_MODE.md +892 -0
  30. package/claude-assets/commands/seo/seo-blog.md +428 -0
  31. package/claude-assets/commands/seo/seo-landing.md +91 -0
  32. package/claude-assets/commands/seo/seo-product.md +104 -0
  33. package/claude-assets/skills/cfn-redis-coordination/demos/test-cancel-swarm.sh +0 -276
  34. package/claude-assets/skills/seo-orchestration/SKILL.md +292 -0
  35. package/claude-assets/skills/seo-orchestration/orchestrate-seo.sh +566 -0
  36. package/claude-assets/skills/seo-orchestration/orchestrate-seo.sh.backup +755 -0
  37. package/claude-assets/skills/seo-orchestration/validate-consensus.sh +270 -0
  38. package/dist/agents/agent-loader.js +165 -146
  39. package/dist/agents/agent-loader.js.map +1 -1
  40. package/dist/cli/agent-prompt-builder.js +25 -0
  41. package/dist/cli/agent-prompt-builder.js.map +1 -1
  42. package/package.json +1 -1
  43. package/.claude/skills/cfn-redis-coordination/HEARTBEAT.md +0 -57
  44. package/.claude/skills/cfn-redis-coordination/HEARTBEAT_MONITORING.md +0 -267
  45. package/.claude/skills/cfn-redis-coordination/LOGGING.md +0 -260
  46. package/.claude/skills/cfn-redis-coordination/README.md +0 -65
  47. package/.claude/skills/cfn-redis-coordination/SECURITY_REVIEW.md +0 -25
  48. package/.claude/skills/cfn-redis-coordination/SHUTDOWN_HANDLING.md +0 -164
  49. package/.claude/skills/cfn-redis-coordination/SKILL.md +0 -720
  50. package/.claude/skills/cfn-redis-coordination/demos/test-dlq.sh +0 -129
  51. package/.claude/skills/cfn-redis-coordination/demos/test-iteration-feedback.sh +0 -320
  52. package/.claude/skills/cfn-redis-coordination/demos/test-orchestrator.sh +0 -249
  53. package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake-phase4-unix.sh +0 -148
  54. package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake-phase4.sh +0 -163
  55. package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake.sh +0 -138
  56. package/.claude/skills/cfn-redis-coordination/demos/test-quick-fix.sh +0 -81
  57. package/.claude/skills/cfn-redis-coordination/demos/test-quorum-absolute.sh +0 -45
  58. package/.claude/skills/cfn-redis-coordination/demos/test-quorum-fallback.sh +0 -68
  59. package/.claude/skills/cfn-redis-coordination/demos/test-quorum-percentage.sh +0 -56
  60. package/.claude/skills/cfn-redis-coordination/demos/test-quorum-with-retry.sh +0 -81
  61. package/.claude/skills/cfn-redis-coordination/demos/test-quorum.sh +0 -57
  62. package/.claude/skills/cfn-redis-coordination/demos/test-shutdown-handling.sh +0 -187
  63. package/.claude/skills/cfn-redis-coordination/demos/test-shutdown.sh +0 -160
  64. package/.claude/skills/cfn-redis-coordination/demos/test-utils-unix.sh +0 -97
  65. package/.claude/skills/cfn-redis-coordination/demos/test-utils.sh +0 -97
  66. package/.claude/skills/cfn-redis-coordination/demos/test-waiting-mode.sh +0 -59
  67. package/.claude/skills/cfn-redis-coordination/examples/README.md +0 -73
  68. package/.claude/skills/cfn-redis-coordination/examples/grafana-dashboard.json +0 -352
  69. package/.claude/skills/cfn-redis-coordination/examples/hierarchical-pattern.sh +0 -127
  70. package/.claude/skills/cfn-redis-coordination/examples/mesh-pattern.sh +0 -171
  71. package/.claude/skills/cfn-redis-coordination/examples/timeout-handling.sh +0 -227
  72. package/.claude/skills/cfn-redis-coordination/examples/waiting-mode-pattern.sh +0 -239
  73. package/.claude/skills/cfn-redis-coordination/execute-product-owner-decision.sh +0 -258
  74. package/.claude/skills/cfn-redis-coordination/get-agent-timeout.sh +0 -177
  75. package/.claude/skills/cfn-redis-coordination/heartbeat-functions.sh +0 -137
  76. package/.claude/skills/cfn-redis-coordination/heartbeat-protocol.md +0 -106
  77. package/.claude/skills/cfn-redis-coordination/heartbeat.sh +0 -126
  78. package/.claude/skills/cfn-redis-coordination/init-swarm.sh +0 -148
  79. package/.claude/skills/cfn-redis-coordination/invoke-redis-pattern.sh +0 -220
  80. package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh +0 -283
  81. package/.claude/skills/cfn-redis-coordination/list-active-swarms.sh +0 -147
  82. package/.claude/skills/cfn-redis-coordination/log-event.sh +0 -109
  83. package/.claude/skills/cfn-redis-coordination/metrics-export.sh +0 -674
  84. package/.claude/skills/cfn-redis-coordination/metrics-schema.json +0 -66
  85. package/.claude/skills/cfn-redis-coordination/metrics-storage.md +0 -31
  86. package/.claude/skills/cfn-redis-coordination/monitor-cfn-violations.sh +0 -391
  87. package/.claude/skills/cfn-redis-coordination/monitor-heartbeats.sh +0 -101
  88. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop-v3.sh +0 -141
  89. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh +0 -31
  90. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.bak +0 -0
  91. package/.claude/skills/cfn-redis-coordination/priority-wake-mechanism.md +0 -75
  92. package/.claude/skills/cfn-redis-coordination/priority_wake.py +0 -134
  93. package/.claude/skills/cfn-redis-coordination/query-dlq.sh +0 -162
  94. package/.claude/skills/cfn-redis-coordination/query-logs.sh +0 -103
  95. package/.claude/skills/cfn-redis-coordination/redis-pattern.sh +0 -619
  96. package/.claude/skills/cfn-redis-coordination/retrieve-context.sh +0 -58
  97. package/.claude/skills/cfn-redis-coordination/select-specialist-agent.sh +0 -371
  98. package/.claude/skills/cfn-redis-coordination/semantic-match-tfidf.py +0 -252
  99. package/.claude/skills/cfn-redis-coordination/send-heartbeat.sh +0 -165
  100. package/.claude/skills/cfn-redis-coordination/signal.sh +0 -38
  101. package/.claude/skills/cfn-redis-coordination/store-context.sh +0 -86
  102. package/.claude/skills/cfn-redis-coordination/store-epic-context.sh +0 -123
  103. package/.claude/skills/cfn-redis-coordination/test-context-injection.sh +0 -354
  104. package/.claude/skills/cfn-redis-coordination/test-timeout-enforcement.sh +0 -513
  105. package/.claude/skills/cfn-redis-coordination/tests/convert-line-endings.sh +0 -15
  106. package/.claude/skills/cfn-redis-coordination/tests/dlq-functionality-test.sh +0 -102
  107. package/.claude/skills/cfn-redis-coordination/tests/edge-cases-test.sh +0 -99
  108. package/.claude/skills/cfn-redis-coordination/tests/integration-test.sh +0 -170
  109. package/.claude/skills/cfn-redis-coordination/tests/retry-mechanism-test.sh +0 -82
  110. package/.claude/skills/cfn-redis-coordination/tests/run-test-suite.sh +0 -92
  111. package/.claude/skills/cfn-redis-coordination/tests/run-tests.sh +0 -4
  112. package/.claude/skills/cfn-redis-coordination/tests/test-heartbeat-monitoring.sh +0 -418
  113. package/.claude/skills/cfn-redis-coordination/tests/test-heartbeat-simple.sh +0 -124
  114. package/.claude/skills/cfn-redis-coordination/tests/test-primitives.sh +0 -166
  115. package/.claude/skills/cfn-redis-coordination/tests/test-utils.sh +0 -54
  116. package/.claude/skills/cfn-redis-coordination/tests/test_utils.sh +0 -49
  117. package/.claude/skills/cfn-redis-coordination/v2_modularization/core_orchestration.sh +0 -76
  118. package/.claude/skills/cfn-redis-coordination/validate-parameters.sh +0 -492
  119. package/claude-assets/skills/cfn-redis-coordination/HEARTBEAT.md +0 -57
  120. package/claude-assets/skills/cfn-redis-coordination/HEARTBEAT_MONITORING.md +0 -267
  121. package/claude-assets/skills/cfn-redis-coordination/LOGGING.md +0 -260
  122. package/claude-assets/skills/cfn-redis-coordination/README.md +0 -65
  123. package/claude-assets/skills/cfn-redis-coordination/SECURITY_REVIEW.md +0 -25
  124. package/claude-assets/skills/cfn-redis-coordination/SHUTDOWN_HANDLING.md +0 -164
  125. package/claude-assets/skills/cfn-redis-coordination/SKILL.md +0 -720
  126. package/claude-assets/skills/cfn-redis-coordination/demos/test-dlq.sh +0 -129
  127. package/claude-assets/skills/cfn-redis-coordination/demos/test-iteration-feedback.sh +0 -320
  128. package/claude-assets/skills/cfn-redis-coordination/demos/test-orchestrator.sh +0 -249
  129. package/claude-assets/skills/cfn-redis-coordination/demos/test-priority-wake-phase4-unix.sh +0 -148
  130. package/claude-assets/skills/cfn-redis-coordination/demos/test-priority-wake-phase4.sh +0 -163
  131. package/claude-assets/skills/cfn-redis-coordination/demos/test-priority-wake.sh +0 -138
  132. package/claude-assets/skills/cfn-redis-coordination/demos/test-quick-fix.sh +0 -81
  133. package/claude-assets/skills/cfn-redis-coordination/demos/test-quorum-absolute.sh +0 -45
  134. package/claude-assets/skills/cfn-redis-coordination/demos/test-quorum-fallback.sh +0 -68
  135. package/claude-assets/skills/cfn-redis-coordination/demos/test-quorum-percentage.sh +0 -56
  136. package/claude-assets/skills/cfn-redis-coordination/demos/test-quorum-with-retry.sh +0 -81
  137. package/claude-assets/skills/cfn-redis-coordination/demos/test-quorum.sh +0 -57
  138. package/claude-assets/skills/cfn-redis-coordination/demos/test-shutdown-handling.sh +0 -187
  139. package/claude-assets/skills/cfn-redis-coordination/demos/test-shutdown.sh +0 -160
  140. package/claude-assets/skills/cfn-redis-coordination/demos/test-utils-unix.sh +0 -97
  141. package/claude-assets/skills/cfn-redis-coordination/demos/test-utils.sh +0 -97
  142. package/claude-assets/skills/cfn-redis-coordination/demos/test-waiting-mode.sh +0 -59
  143. package/claude-assets/skills/cfn-redis-coordination/examples/README.md +0 -73
  144. package/claude-assets/skills/cfn-redis-coordination/examples/grafana-dashboard.json +0 -352
  145. package/claude-assets/skills/cfn-redis-coordination/examples/hierarchical-pattern.sh +0 -127
  146. package/claude-assets/skills/cfn-redis-coordination/examples/mesh-pattern.sh +0 -171
  147. package/claude-assets/skills/cfn-redis-coordination/examples/timeout-handling.sh +0 -227
  148. package/claude-assets/skills/cfn-redis-coordination/examples/waiting-mode-pattern.sh +0 -239
  149. package/claude-assets/skills/cfn-redis-coordination/execute-product-owner-decision.sh +0 -258
  150. package/claude-assets/skills/cfn-redis-coordination/get-agent-timeout.sh +0 -177
  151. package/claude-assets/skills/cfn-redis-coordination/heartbeat-functions.sh +0 -137
  152. package/claude-assets/skills/cfn-redis-coordination/heartbeat-protocol.md +0 -106
  153. package/claude-assets/skills/cfn-redis-coordination/heartbeat.sh +0 -126
  154. package/claude-assets/skills/cfn-redis-coordination/init-swarm.sh +0 -148
  155. package/claude-assets/skills/cfn-redis-coordination/invoke-redis-pattern.sh +0 -220
  156. package/claude-assets/skills/cfn-redis-coordination/invoke-waiting-mode.sh +0 -283
  157. package/claude-assets/skills/cfn-redis-coordination/list-active-swarms.sh +0 -147
  158. package/claude-assets/skills/cfn-redis-coordination/log-event.sh +0 -109
  159. package/claude-assets/skills/cfn-redis-coordination/metrics-export.sh +0 -674
  160. package/claude-assets/skills/cfn-redis-coordination/metrics-schema.json +0 -66
  161. package/claude-assets/skills/cfn-redis-coordination/metrics-storage.md +0 -31
  162. package/claude-assets/skills/cfn-redis-coordination/monitor-cfn-violations.sh +0 -391
  163. package/claude-assets/skills/cfn-redis-coordination/monitor-heartbeats.sh +0 -101
  164. package/claude-assets/skills/cfn-redis-coordination/orchestrate-cfn-loop-v3.sh +0 -141
  165. package/claude-assets/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh +0 -31
  166. package/claude-assets/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.bak +0 -0
  167. package/claude-assets/skills/cfn-redis-coordination/priority-wake-mechanism.md +0 -75
  168. package/claude-assets/skills/cfn-redis-coordination/priority_wake.py +0 -134
  169. package/claude-assets/skills/cfn-redis-coordination/query-dlq.sh +0 -162
  170. package/claude-assets/skills/cfn-redis-coordination/query-logs.sh +0 -103
  171. package/claude-assets/skills/cfn-redis-coordination/redis-pattern.sh +0 -619
  172. package/claude-assets/skills/cfn-redis-coordination/retrieve-context.sh +0 -58
  173. package/claude-assets/skills/cfn-redis-coordination/select-specialist-agent.sh +0 -371
  174. package/claude-assets/skills/cfn-redis-coordination/semantic-match-tfidf.py +0 -252
  175. package/claude-assets/skills/cfn-redis-coordination/send-heartbeat.sh +0 -165
  176. package/claude-assets/skills/cfn-redis-coordination/signal.sh +0 -38
  177. package/claude-assets/skills/cfn-redis-coordination/store-context.sh +0 -86
  178. package/claude-assets/skills/cfn-redis-coordination/store-epic-context.sh +0 -123
  179. package/claude-assets/skills/cfn-redis-coordination/test-context-injection.sh +0 -354
  180. package/claude-assets/skills/cfn-redis-coordination/test-timeout-enforcement.sh +0 -513
  181. package/claude-assets/skills/cfn-redis-coordination/tests/convert-line-endings.sh +0 -15
  182. package/claude-assets/skills/cfn-redis-coordination/tests/dlq-functionality-test.sh +0 -102
  183. package/claude-assets/skills/cfn-redis-coordination/tests/edge-cases-test.sh +0 -99
  184. package/claude-assets/skills/cfn-redis-coordination/tests/integration-test.sh +0 -170
  185. package/claude-assets/skills/cfn-redis-coordination/tests/retry-mechanism-test.sh +0 -82
  186. package/claude-assets/skills/cfn-redis-coordination/tests/run-test-suite.sh +0 -92
  187. package/claude-assets/skills/cfn-redis-coordination/tests/run-tests.sh +0 -4
  188. package/claude-assets/skills/cfn-redis-coordination/tests/test-heartbeat-monitoring.sh +0 -418
  189. package/claude-assets/skills/cfn-redis-coordination/tests/test-heartbeat-simple.sh +0 -124
  190. package/claude-assets/skills/cfn-redis-coordination/tests/test-primitives.sh +0 -166
  191. package/claude-assets/skills/cfn-redis-coordination/tests/test-utils.sh +0 -54
  192. package/claude-assets/skills/cfn-redis-coordination/tests/test_utils.sh +0 -49
  193. package/claude-assets/skills/cfn-redis-coordination/v2_modularization/core_orchestration.sh +0 -76
  194. package/claude-assets/skills/cfn-redis-coordination/validate-parameters.sh +0 -492
@@ -1,720 +0,0 @@
1
- # Redis Coordination Skill
2
-
3
- **Version:** 3.0.0 (Pure Coordination Primitives)
4
- **Last Updated:** 2025-10-23
5
-
6
- **⚠️ DEPRECATION NOTICE:**
7
- The monolithic `orchestrate-cfn-loop.sh` (70KB) has been replaced by the modular CFN v3 orchestrator at `.claude/skills/cfn-loop-orchestration/orchestrate.sh` (26KB). See CFN v3 documentation for details.
8
-
9
- ---
10
-
11
- ## Overview
12
-
13
- The Redis Coordination Skill provides low-level coordination primitives for distributed agent orchestration. This skill is framework-agnostic and supports any coordination pattern (swarm, mesh, hierarchical).
14
-
15
- **Key Capabilities:**
16
- - Generic JSON context storage and retrieval
17
- - Pub/sub signaling (LPUSH/BLPOP)
18
- - Agent result collection and aggregation
19
- - Zero-token waiting mechanisms
20
- - Consensus calculation
21
-
22
- **Design Philosophy:**
23
- - Pure primitives, no workflow-specific logic
24
- - Minimal assumptions about coordination patterns
25
- - Clean, composable interfaces
26
- - Framework-agnostic implementations
27
-
28
- ---
29
-
30
- ## Core Primitives
31
-
32
- ### 1. Context Storage (`store-context.sh`)
33
-
34
- Store arbitrary JSON context in Redis with automatic TTL management.
35
-
36
- **Usage:**
37
- ```bash
38
- ./store-context.sh \
39
- --task-id "unique-task-123" \
40
- --key "epic-context" \
41
- --value '{"goal": "Build feature X", "scope": ["A", "B"]}' \
42
- --ttl 86400
43
- ```
44
-
45
- **Parameters:**
46
- - `--task-id` (required): Unique task identifier
47
- - `--key` (required): Context key name
48
- - `--value` (required): Valid JSON string
49
- - `--ttl` (optional): Time-to-live in seconds (default: 86400 = 24h)
50
- - `--namespace` (optional): Redis key namespace (default: "context")
51
-
52
- **Returns:**
53
- - Redis key on success: `context:unique-task-123:epic-context`
54
- - Exit code 0 on success, 1 on error
55
-
56
- **Redis Key Format:**
57
- ```
58
- {namespace}:{task_id}:{key}
59
- └─ Hash fields:
60
- - value: JSON payload
61
- - metadata: {stored_at, ttl_seconds}
62
- ```
63
-
64
- **Example:**
65
- ```bash
66
- # Store epic context
67
- REDIS_KEY=$(./store-context.sh \
68
- --task-id "task-001" \
69
- --key "epic" \
70
- --value '{"goal": "Authentication system"}')
71
-
72
- echo "Stored at: $REDIS_KEY"
73
- # Output: Stored at: context:task-001:epic
74
- ```
75
-
76
- ---
77
-
78
- ### 2. Context Retrieval (`retrieve-context.sh`)
79
-
80
- Retrieve JSON context from Redis with optional metadata.
81
-
82
- **Usage:**
83
- ```bash
84
- ./retrieve-context.sh \
85
- --task-id "unique-task-123" \
86
- --key "epic-context"
87
- ```
88
-
89
- **Parameters:**
90
- - `--task-id` (required): Unique task identifier
91
- - `--key` (required): Context key name
92
- - `--namespace` (optional): Redis key namespace (default: "context")
93
- - `--with-metadata` (optional): Include storage metadata in output
94
-
95
- **Returns:**
96
- - JSON value on success
97
- - Exit code 0 on success, 1 if key not found or invalid
98
-
99
- **Example:**
100
- ```bash
101
- # Retrieve context
102
- CONTEXT=$(./retrieve-context.sh \
103
- --task-id "task-001" \
104
- --key "epic")
105
-
106
- echo "$CONTEXT" | jq .
107
- # Output: {"goal": "Authentication system"}
108
-
109
- # With metadata
110
- ./retrieve-context.sh \
111
- --task-id "task-001" \
112
- --key "epic" \
113
- --with-metadata | jq .
114
- # Output:
115
- # {
116
- # "value": {"goal": "Authentication system"},
117
- # "metadata": {"stored_at": "2025-10-23T10:30:00Z", "ttl_seconds": 86400},
118
- # "ttl_remaining": 85000
119
- # }
120
- ```
121
-
122
- ---
123
-
124
- ### 3. Signaling (`signal.sh`)
125
-
126
- Generic pub/sub signaling for agent coordination using LPUSH/BLPOP.
127
-
128
- **Commands:**
129
- - `send`: Send signal to a queue (LPUSH)
130
- - `wait`: Wait for signal with timeout (BLPOP)
131
- - `broadcast`: Send signal to multiple agents
132
-
133
- **Usage - Send:**
134
- ```bash
135
- ./signal.sh send \
136
- --task-id "task-001" \
137
- --signal "gate-passed" \
138
- --payload '{"threshold": 0.75, "passed": true}'
139
- ```
140
-
141
- **Usage - Wait:**
142
- ```bash
143
- # Wait indefinitely (timeout=0)
144
- PAYLOAD=$(./signal.sh wait \
145
- --task-id "task-001" \
146
- --signal "gate-passed")
147
-
148
- # Wait with timeout (120 seconds)
149
- PAYLOAD=$(./signal.sh wait \
150
- --task-id "task-001" \
151
- --signal "gate-passed" \
152
- --timeout 120)
153
- ```
154
-
155
- **Usage - Broadcast:**
156
- ```bash
157
- ./signal.sh broadcast \
158
- --task-id "task-001" \
159
- --signal "iteration-start" \
160
- --agents "agent-1,agent-2,agent-3" \
161
- --payload '{"iteration": 2, "reason": "improve_quality"}'
162
- ```
163
-
164
- **Parameters:**
165
- - `--task-id` (required): Unique task identifier
166
- - `--signal` (required): Signal name
167
- - `--payload` (optional): JSON payload (default: `{}`)
168
- - `--timeout` (optional): Wait timeout in seconds (default: 0 = infinite)
169
- - `--agents` (required for broadcast): Comma-separated agent IDs
170
- - `--namespace` (optional): Redis key namespace (default: "signal")
171
-
172
- **Redis Key Formats:**
173
- ```
174
- # Send/Wait:
175
- signal:{task_id}:{signal_name}
176
-
177
- # Broadcast:
178
- signal:{task_id}:{agent_id}:{signal_name}
179
- ```
180
-
181
- **Example - Simple Coordination:**
182
- ```bash
183
- # Agent 1: Wait for signal
184
- (
185
- ./signal.sh wait --task-id "task-001" --signal "start-work"
186
- echo "Received start signal, beginning work..."
187
- ) &
188
-
189
- # Agent 2: Send signal after preparation
190
- sleep 2
191
- ./signal.sh send --task-id "task-001" --signal "start-work" --payload '{}'
192
- ```
193
-
194
- ---
195
-
196
- ### 4. Result Collection (`collect-results.sh`)
197
-
198
- Collect and aggregate agent results with confidence scoring and consensus calculation.
199
-
200
- **Usage:**
201
- ```bash
202
- ./collect-results.sh \
203
- --task-id "task-001" \
204
- --agent-ids "coder-1,reviewer-1,tester-1"
205
- ```
206
-
207
- **Parameters:**
208
- - `--task-id` (required): Unique task identifier
209
- - `--agent-ids` (required): Comma-separated agent IDs
210
- - `--namespace` (optional): Redis key namespace (default: "result")
211
- - `--calculate-consensus` (optional): Calculate average confidence score
212
- - `--min-confidence` (optional): Minimum confidence threshold
213
- - `--include-metadata` (optional): Include agent metadata in output
214
- - `--timeout` (optional): Wait timeout per agent in seconds (default: 0)
215
-
216
- **Expected Redis Structure (Per Agent):**
217
- ```
218
- result:{task_id}:{agent_id}
219
- └─ Hash fields:
220
- - confidence: 0.85
221
- - iteration: 1
222
- - timestamp: 2025-10-23T10:30:00Z
223
- - output: "Implementation complete"
224
- ```
225
-
226
- **Returns JSON:**
227
- ```json
228
- {
229
- "task_id": "task-001",
230
- "total_agents": 3,
231
- "successful_agents": 3,
232
- "failed_agents": [],
233
- "results": [
234
- {
235
- "agent_id": "coder-1",
236
- "confidence": 0.92,
237
- "iteration": 1,
238
- "timestamp": "2025-10-23T10:30:00Z",
239
- "output": "Implementation complete"
240
- },
241
- {
242
- "agent_id": "reviewer-1",
243
- "confidence": 0.88,
244
- "iteration": 1,
245
- "timestamp": "2025-10-23T10:31:00Z",
246
- "output": "Code review passed"
247
- }
248
- ],
249
- "consensus": 0.90
250
- }
251
- ```
252
-
253
- **Example - Calculate Consensus:**
254
- ```bash
255
- # Collect results with consensus calculation
256
- RESULTS=$(./collect-results.sh \
257
- --task-id "task-001" \
258
- --agent-ids "coder-1,reviewer-1,tester-1" \
259
- --calculate-consensus \
260
- --min-confidence 0.75)
261
-
262
- CONSENSUS=$(echo "$RESULTS" | jq -r '.consensus')
263
- echo "Team consensus: $CONSENSUS"
264
-
265
- # Check if consensus meets threshold
266
- if (( $(echo "$CONSENSUS >= 0.90" | bc -l) )); then
267
- echo "✅ Consensus threshold met"
268
- else
269
- echo "❌ Needs iteration"
270
- fi
271
- ```
272
-
273
- ---
274
-
275
- ## Coordination Patterns
276
-
277
- ### Pattern 1: Simple Chain (Sequential)
278
-
279
- Agents execute sequentially, each waiting for the previous to complete.
280
-
281
- ```bash
282
- TASK_ID="task-001"
283
-
284
- # Agent 1: Execute and signal completion
285
- (
286
- echo "Agent 1: Working..."
287
- sleep 2
288
- ./signal.sh send --task-id "$TASK_ID" --signal "agent-1-done" --payload '{}'
289
- ) &
290
-
291
- # Agent 2: Wait for Agent 1, then execute
292
- (
293
- ./signal.sh wait --task-id "$TASK_ID" --signal "agent-1-done"
294
- echo "Agent 2: Working..."
295
- sleep 2
296
- ./signal.sh send --task-id "$TASK_ID" --signal "agent-2-done" --payload '{}'
297
- ) &
298
-
299
- # Wait for all agents
300
- wait
301
- echo "Chain complete"
302
- ```
303
-
304
- ### Pattern 2: Broadcast with Consensus
305
-
306
- Coordinator broadcasts work to multiple agents, then collects consensus.
307
-
308
- ```bash
309
- TASK_ID="task-002"
310
- AGENTS="agent-1,agent-2,agent-3"
311
-
312
- # Store context for agents
313
- ./store-context.sh \
314
- --task-id "$TASK_ID" \
315
- --key "work-context" \
316
- --value '{"task": "Review code", "file": "main.py"}'
317
-
318
- # Broadcast start signal to all agents
319
- ./signal.sh broadcast \
320
- --task-id "$TASK_ID" \
321
- --signal "start-work" \
322
- --agents "$AGENTS" \
323
- --payload '{"iteration": 1}'
324
-
325
- # Wait for agents to complete (agents must report results to Redis)
326
- sleep 10
327
-
328
- # Collect results and calculate consensus
329
- RESULTS=$(./collect-results.sh \
330
- --task-id "$TASK_ID" \
331
- --agent-ids "$AGENTS" \
332
- --calculate-consensus \
333
- --min-confidence 0.75)
334
-
335
- echo "$RESULTS" | jq .
336
- ```
337
-
338
- ### Pattern 3: Hierarchical (Loop Dependencies)
339
-
340
- Implement multi-stage workflows with gate checks between stages.
341
-
342
- ```bash
343
- TASK_ID="task-003"
344
-
345
- # Stage 1: Implementation agents
346
- LOOP3_AGENTS="coder-1,researcher-1"
347
- ./signal.sh broadcast \
348
- --task-id "$TASK_ID" \
349
- --signal "stage-1-start" \
350
- --agents "$LOOP3_AGENTS" \
351
- --payload '{}'
352
-
353
- # Wait for implementation results
354
- sleep 10
355
- LOOP3_RESULTS=$(./collect-results.sh \
356
- --task-id "$TASK_ID" \
357
- --agent-ids "$LOOP3_AGENTS" \
358
- --calculate-consensus)
359
-
360
- LOOP3_CONSENSUS=$(echo "$LOOP3_RESULTS" | jq -r '.consensus')
361
-
362
- # Gate check
363
- GATE_THRESHOLD=0.75
364
- if (( $(echo "$LOOP3_CONSENSUS >= $GATE_THRESHOLD" | bc -l) )); then
365
- echo "✅ Gate passed: $LOOP3_CONSENSUS"
366
-
367
- # Stage 2: Validation agents (only if gate passed)
368
- LOOP2_AGENTS="reviewer-1,tester-1"
369
- ./signal.sh send \
370
- --task-id "$TASK_ID" \
371
- --signal "gate-passed" \
372
- --payload "{\"loop3_consensus\": $LOOP3_CONSENSUS}"
373
-
374
- ./signal.sh broadcast \
375
- --task-id "$TASK_ID" \
376
- --signal "stage-2-start" \
377
- --agents "$LOOP2_AGENTS" \
378
- --payload '{}'
379
- else
380
- echo "❌ Gate failed: $LOOP3_CONSENSUS - relaunch Stage 1"
381
- fi
382
- ```
383
-
384
- ---
385
-
386
- ## Agent Integration Examples
387
-
388
- ### Example 1: Agent Storing Context
389
-
390
- ```bash
391
- #!/bin/bash
392
- # Agent: backend-dev
393
-
394
- TASK_ID="$1"
395
- AGENT_ID="backend-dev-1"
396
-
397
- # Retrieve work context
398
- CONTEXT=$(./retrieve-context.sh --task-id "$TASK_ID" --key "work-context")
399
- GOAL=$(echo "$CONTEXT" | jq -r '.goal')
400
-
401
- echo "Working on: $GOAL"
402
-
403
- # Do work...
404
- sleep 5
405
-
406
- # Report confidence to Redis
407
- redis-cli HSET "result:${TASK_ID}:${AGENT_ID}" \
408
- confidence 0.92 \
409
- iteration 1 \
410
- timestamp "$(date -u +"%Y-%m-%dT%H:%M:%SZ")" \
411
- output "Implementation complete"
412
-
413
- echo "Reported confidence: 0.92"
414
- ```
415
-
416
- ### Example 2: Agent Waiting for Signal
417
-
418
- ```bash
419
- #!/bin/bash
420
- # Agent: validator
421
-
422
- TASK_ID="$1"
423
- AGENT_ID="validator-1"
424
-
425
- echo "Waiting for gate to pass..."
426
-
427
- # Block until signal received
428
- SIGNAL_PAYLOAD=$(./signal.sh wait \
429
- --task-id "$TASK_ID" \
430
- --signal "gate-passed" \
431
- --timeout 300)
432
-
433
- if [ $? -eq 0 ]; then
434
- LOOP3_CONSENSUS=$(echo "$SIGNAL_PAYLOAD" | jq -r '.loop3_consensus')
435
- echo "Gate passed with consensus: $LOOP3_CONSENSUS"
436
-
437
- # Retrieve implementation results
438
- CONTEXT=$(./retrieve-context.sh --task-id "$TASK_ID" --key "implementation")
439
-
440
- # Validate...
441
- echo "Validating implementation..."
442
- sleep 3
443
-
444
- # Report result
445
- redis-cli HSET "result:${TASK_ID}:${AGENT_ID}" \
446
- confidence 0.88 \
447
- iteration 1 \
448
- timestamp "$(date -u +"%Y-%m-%dT%H:%M:%SZ")" \
449
- output "Validation passed"
450
- else
451
- echo "Timeout waiting for gate signal"
452
- exit 1
453
- fi
454
- ```
455
-
456
- ---
457
-
458
- ## Deprecated Features (v3.0.0)
459
-
460
- ### Waiting Mode (invoke-waiting-mode.sh)
461
-
462
- **Status:** Partially deprecated (report/collect still active)
463
-
464
- The `enter` and `wake` subcommands are deprecated as they caused agent lifecycle issues (indefinite blocking). Agents should now exit cleanly after reporting results.
465
-
466
- **Still Supported:**
467
- - `report`: Report confidence scores
468
- - `collect`: Collect consensus
469
- - `shutdown`: Clean shutdown
470
-
471
- **No Longer Supported:**
472
- - `enter`: Agents should exit instead
473
- - `wake`: Use broadcast signaling instead
474
-
475
- **Migration Path:**
476
- ```bash
477
- # OLD (deprecated):
478
- ./invoke-waiting-mode.sh enter --task-id "$TASK_ID" --agent-id "$AGENT_ID"
479
-
480
- # NEW (use signal.sh):
481
- ./signal.sh wait --task-id "$TASK_ID" --signal "wake-signal"
482
- ```
483
-
484
- ### CFN Loop Orchestrator (orchestrate-cfn-loop.sh)
485
-
486
- **Status:** Deprecated (kept for backward compatibility)
487
-
488
- The orchestrator script contains CFN-specific workflow logic and will be moved to the `cfn-loop-validation` skill in a future release.
489
-
490
- **Recommendation:** Build custom orchestrators using the core primitives instead of relying on this monolithic script.
491
-
492
- ---
493
-
494
- ## Best Practices
495
-
496
- ### 1. Always Set TTL
497
-
498
- Context and signals should have reasonable TTLs to prevent Redis memory leaks:
499
-
500
- ```bash
501
- # Good: 24-hour TTL
502
- ./store-context.sh --task-id "$TASK_ID" --key "context" --value "$JSON" --ttl 86400
503
-
504
- # Signals auto-expire after 1 hour
505
- ./signal.sh send --task-id "$TASK_ID" --signal "start" --payload '{}'
506
- ```
507
-
508
- ### 2. Validate JSON Before Storage
509
-
510
- ```bash
511
- # Validate JSON structure
512
- if echo "$CONTEXT_JSON" | jq empty 2>/dev/null; then
513
- ./store-context.sh --task-id "$TASK_ID" --key "context" --value "$CONTEXT_JSON"
514
- else
515
- echo "Error: Invalid JSON"
516
- exit 1
517
- fi
518
- ```
519
-
520
- ### 3. Use Namespaces for Isolation
521
-
522
- ```bash
523
- # Separate production and test environments
524
- ./store-context.sh \
525
- --task-id "$TASK_ID" \
526
- --key "config" \
527
- --value "$JSON" \
528
- --namespace "prod:context"
529
-
530
- ./store-context.sh \
531
- --task-id "$TASK_ID" \
532
- --key "config" \
533
- --value "$JSON" \
534
- --namespace "test:context"
535
- ```
536
-
537
- ### 4. Handle Timeouts Gracefully
538
-
539
- ```bash
540
- # Always check signal.sh exit code
541
- if SIGNAL=$(./signal.sh wait --task-id "$TASK_ID" --signal "ready" --timeout 60); then
542
- echo "Signal received: $SIGNAL"
543
- else
544
- echo "Timeout - proceeding with default behavior"
545
- fi
546
- ```
547
-
548
- ### 5. Clean Up After Task Completion
549
-
550
- ```bash
551
- # Delete task-specific keys after completion
552
- redis-cli DEL "context:${TASK_ID}:*"
553
- redis-cli DEL "signal:${TASK_ID}:*"
554
- redis-cli DEL "result:${TASK_ID}:*"
555
- ```
556
-
557
- ---
558
-
559
- ## Testing
560
-
561
- ### Unit Tests
562
-
563
- Each primitive has corresponding tests in `tests/primitives/`:
564
-
565
- ```bash
566
- # Test context storage
567
- ./tests/primitives/test-store-context.sh
568
-
569
- # Test context retrieval
570
- ./tests/primitives/test-retrieve-context.sh
571
-
572
- # Test signaling
573
- ./tests/primitives/test-signal.sh
574
-
575
- # Test result collection
576
- ./tests/primitives/test-collect-results.sh
577
- ```
578
-
579
- ### Integration Tests
580
-
581
- Test coordination patterns end-to-end:
582
-
583
- ```bash
584
- # Test chain pattern
585
- ./tests/integration/test-chain-pattern.sh
586
-
587
- # Test broadcast pattern
588
- ./tests/integration/test-broadcast-pattern.sh
589
-
590
- # Test hierarchical pattern
591
- ./tests/integration/test-hierarchical-pattern.sh
592
- ```
593
-
594
- ---
595
-
596
- ## Performance
597
-
598
- ### Benchmarks (100 operations)
599
-
600
- | Operation | Avg Latency | Throughput |
601
- |-----------|-------------|------------|
602
- | store-context.sh | 3ms | 333 ops/s |
603
- | retrieve-context.sh | 2ms | 500 ops/s |
604
- | signal.sh send | 2ms | 500 ops/s |
605
- | signal.sh wait (immediate) | 3ms | 333 ops/s |
606
- | collect-results.sh (3 agents) | 8ms | 125 ops/s |
607
-
608
- **Zero-Token Waiting:**
609
- - BLPOP blocks without API calls (0 token cost)
610
- - Immediate wake-up (<100ms latency)
611
- - Scales to 100+ concurrent agents
612
-
613
- ---
614
-
615
- ## Security Considerations
616
-
617
- ### 1. No Sensitive Data in Payloads
618
-
619
- Never store API keys, credentials, or secrets in Redis context:
620
-
621
- ```bash
622
- # BAD:
623
- ./store-context.sh --key "config" --value '{"api_key": "sk-xxx"}'
624
-
625
- # GOOD:
626
- ./store-context.sh --key "config" --value '{"api_key_ref": "env:API_KEY"}'
627
- ```
628
-
629
- ### 2. Namespace Isolation
630
-
631
- Use namespaces to prevent cross-task contamination:
632
-
633
- ```bash
634
- --namespace "user-${USER_ID}:context"
635
- ```
636
-
637
- ### 3. TTL Enforcement
638
-
639
- Always set TTLs to prevent indefinite data retention:
640
-
641
- ```bash
642
- --ttl 3600 # 1 hour maximum
643
- ```
644
-
645
- ---
646
-
647
- ## Error Handling
648
-
649
- ### Common Errors
650
-
651
- **Error:** `Context key does not exist`
652
- ```bash
653
- # Check if key exists before retrieval
654
- if redis-cli EXISTS "context:${TASK_ID}:${KEY}" | grep -q "1"; then
655
- ./retrieve-context.sh --task-id "$TASK_ID" --key "$KEY"
656
- else
657
- echo "Key not found, using default"
658
- fi
659
- ```
660
-
661
- **Error:** `Timeout waiting for signal`
662
- ```bash
663
- # Always provide timeout for production
664
- ./signal.sh wait --task-id "$TASK_ID" --signal "start" --timeout 300 || {
665
- echo "Timeout - sending fallback signal"
666
- ./signal.sh send --task-id "$TASK_ID" --signal "timeout-fallback" --payload '{}'
667
- }
668
- ```
669
-
670
- **Error:** `Failed to retrieve context value`
671
- ```bash
672
- # Validate Redis connection
673
- if ! redis-cli PING | grep -q "PONG"; then
674
- echo "Redis unavailable"
675
- exit 1
676
- fi
677
- ```
678
-
679
- ---
680
-
681
- ## Version History
682
-
683
- ### v3.0.0 (2025-10-23) - Pure Coordination Primitives
684
- - **Breaking:** Removed CFN-specific logic from primitives
685
- - **Added:** `store-context.sh` - Generic JSON storage
686
- - **Added:** `retrieve-context.sh` - Generic JSON retrieval
687
- - **Added:** `signal.sh` - Pub/sub signaling
688
- - **Added:** `collect-results.sh` - Result aggregation
689
- - **Deprecated:** `invoke-waiting-mode.sh` enter/wake commands
690
- - **Deprecated:** `orchestrate-cfn-loop.sh` (moved to cfn-loop-validation skill)
691
- - **Migration:** CFN-specific logic moved to separate orchestration layer
692
-
693
- ### v2.1.0 (2025-10-20) - Agent Completion Protocol
694
- - Three-layer timeout protection
695
- - Process-based completion detection
696
- - Heartbeat monitoring
697
-
698
- ### v2.0.0 (2025-10-18) - Metrics & Observability
699
- - Comprehensive metrics collection
700
- - Prometheus export support
701
- - Deliverable verification (BUG #11 fix)
702
-
703
- ---
704
-
705
- ## Support
706
-
707
- **Skill Owner:** Redis Coordination Team
708
- **Documentation:** `.claude/skills/redis-coordination/SKILL.md`
709
- **Issues:** Tag with `skill:redis-coordination`
710
-
711
- **Related Skills:**
712
- - `cfn-loop-validation` - CFN Loop orchestration (uses these primitives)
713
- - `agent-spawning` - Agent lifecycle management
714
- - `hook-pipeline` - Post-edit validation
715
-
716
- ---
717
-
718
- ## License
719
-
720
- Part of Claude Flow Novice - AI Agent Orchestration Framework