claude-flow-novice 2.14.3 → 2.14.4

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 (162) hide show
  1. package/.claude/commands/CFN_LOOP_TASK_MODE.md +4 -47
  2. package/.claude/skills/cfn-redis-coordination/demos/test-cancel-swarm.sh +0 -276
  3. package/claude-assets/commands/CFN_LOOP_TASK_MODE.md +4 -47
  4. package/claude-assets/skills/cfn-redis-coordination/demos/test-cancel-swarm.sh +0 -276
  5. package/dist/agents/agent-loader.js +165 -146
  6. package/dist/agents/agent-loader.js.map +1 -1
  7. package/dist/cli/agent-prompt-builder.js +25 -0
  8. package/dist/cli/agent-prompt-builder.js.map +1 -1
  9. package/dist/cli/config-manager.js +91 -109
  10. package/package.json +1 -1
  11. package/.claude/skills/cfn-redis-coordination/HEARTBEAT.md +0 -57
  12. package/.claude/skills/cfn-redis-coordination/HEARTBEAT_MONITORING.md +0 -267
  13. package/.claude/skills/cfn-redis-coordination/LOGGING.md +0 -260
  14. package/.claude/skills/cfn-redis-coordination/README.md +0 -65
  15. package/.claude/skills/cfn-redis-coordination/SECURITY_REVIEW.md +0 -25
  16. package/.claude/skills/cfn-redis-coordination/SHUTDOWN_HANDLING.md +0 -164
  17. package/.claude/skills/cfn-redis-coordination/SKILL.md +0 -720
  18. package/.claude/skills/cfn-redis-coordination/demos/test-dlq.sh +0 -129
  19. package/.claude/skills/cfn-redis-coordination/demos/test-iteration-feedback.sh +0 -320
  20. package/.claude/skills/cfn-redis-coordination/demos/test-orchestrator.sh +0 -249
  21. package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake-phase4-unix.sh +0 -148
  22. package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake-phase4.sh +0 -163
  23. package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake.sh +0 -138
  24. package/.claude/skills/cfn-redis-coordination/demos/test-quick-fix.sh +0 -81
  25. package/.claude/skills/cfn-redis-coordination/demos/test-quorum-absolute.sh +0 -45
  26. package/.claude/skills/cfn-redis-coordination/demos/test-quorum-fallback.sh +0 -68
  27. package/.claude/skills/cfn-redis-coordination/demos/test-quorum-percentage.sh +0 -56
  28. package/.claude/skills/cfn-redis-coordination/demos/test-quorum-with-retry.sh +0 -81
  29. package/.claude/skills/cfn-redis-coordination/demos/test-quorum.sh +0 -57
  30. package/.claude/skills/cfn-redis-coordination/demos/test-shutdown-handling.sh +0 -187
  31. package/.claude/skills/cfn-redis-coordination/demos/test-shutdown.sh +0 -160
  32. package/.claude/skills/cfn-redis-coordination/demos/test-utils-unix.sh +0 -97
  33. package/.claude/skills/cfn-redis-coordination/demos/test-utils.sh +0 -97
  34. package/.claude/skills/cfn-redis-coordination/demos/test-waiting-mode.sh +0 -59
  35. package/.claude/skills/cfn-redis-coordination/examples/README.md +0 -73
  36. package/.claude/skills/cfn-redis-coordination/examples/grafana-dashboard.json +0 -352
  37. package/.claude/skills/cfn-redis-coordination/examples/hierarchical-pattern.sh +0 -127
  38. package/.claude/skills/cfn-redis-coordination/examples/mesh-pattern.sh +0 -171
  39. package/.claude/skills/cfn-redis-coordination/examples/timeout-handling.sh +0 -227
  40. package/.claude/skills/cfn-redis-coordination/examples/waiting-mode-pattern.sh +0 -239
  41. package/.claude/skills/cfn-redis-coordination/execute-product-owner-decision.sh +0 -258
  42. package/.claude/skills/cfn-redis-coordination/get-agent-timeout.sh +0 -177
  43. package/.claude/skills/cfn-redis-coordination/heartbeat-functions.sh +0 -137
  44. package/.claude/skills/cfn-redis-coordination/heartbeat-protocol.md +0 -106
  45. package/.claude/skills/cfn-redis-coordination/heartbeat.sh +0 -126
  46. package/.claude/skills/cfn-redis-coordination/init-swarm.sh +0 -148
  47. package/.claude/skills/cfn-redis-coordination/invoke-redis-pattern.sh +0 -220
  48. package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh +0 -283
  49. package/.claude/skills/cfn-redis-coordination/list-active-swarms.sh +0 -147
  50. package/.claude/skills/cfn-redis-coordination/log-event.sh +0 -109
  51. package/.claude/skills/cfn-redis-coordination/metrics-export.sh +0 -674
  52. package/.claude/skills/cfn-redis-coordination/metrics-schema.json +0 -66
  53. package/.claude/skills/cfn-redis-coordination/metrics-storage.md +0 -31
  54. package/.claude/skills/cfn-redis-coordination/monitor-cfn-violations.sh +0 -391
  55. package/.claude/skills/cfn-redis-coordination/monitor-heartbeats.sh +0 -101
  56. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop-v3.sh +0 -141
  57. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh +0 -31
  58. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.bak +0 -0
  59. package/.claude/skills/cfn-redis-coordination/priority-wake-mechanism.md +0 -75
  60. package/.claude/skills/cfn-redis-coordination/priority_wake.py +0 -134
  61. package/.claude/skills/cfn-redis-coordination/query-dlq.sh +0 -162
  62. package/.claude/skills/cfn-redis-coordination/query-logs.sh +0 -103
  63. package/.claude/skills/cfn-redis-coordination/redis-pattern.sh +0 -619
  64. package/.claude/skills/cfn-redis-coordination/retrieve-context.sh +0 -58
  65. package/.claude/skills/cfn-redis-coordination/select-specialist-agent.sh +0 -371
  66. package/.claude/skills/cfn-redis-coordination/semantic-match-tfidf.py +0 -252
  67. package/.claude/skills/cfn-redis-coordination/send-heartbeat.sh +0 -165
  68. package/.claude/skills/cfn-redis-coordination/signal.sh +0 -38
  69. package/.claude/skills/cfn-redis-coordination/store-context.sh +0 -86
  70. package/.claude/skills/cfn-redis-coordination/store-epic-context.sh +0 -123
  71. package/.claude/skills/cfn-redis-coordination/test-context-injection.sh +0 -354
  72. package/.claude/skills/cfn-redis-coordination/test-timeout-enforcement.sh +0 -513
  73. package/.claude/skills/cfn-redis-coordination/tests/convert-line-endings.sh +0 -15
  74. package/.claude/skills/cfn-redis-coordination/tests/dlq-functionality-test.sh +0 -102
  75. package/.claude/skills/cfn-redis-coordination/tests/edge-cases-test.sh +0 -99
  76. package/.claude/skills/cfn-redis-coordination/tests/integration-test.sh +0 -170
  77. package/.claude/skills/cfn-redis-coordination/tests/retry-mechanism-test.sh +0 -82
  78. package/.claude/skills/cfn-redis-coordination/tests/run-test-suite.sh +0 -92
  79. package/.claude/skills/cfn-redis-coordination/tests/run-tests.sh +0 -4
  80. package/.claude/skills/cfn-redis-coordination/tests/test-heartbeat-monitoring.sh +0 -418
  81. package/.claude/skills/cfn-redis-coordination/tests/test-heartbeat-simple.sh +0 -124
  82. package/.claude/skills/cfn-redis-coordination/tests/test-primitives.sh +0 -166
  83. package/.claude/skills/cfn-redis-coordination/tests/test-utils.sh +0 -54
  84. package/.claude/skills/cfn-redis-coordination/tests/test_utils.sh +0 -49
  85. package/.claude/skills/cfn-redis-coordination/v2_modularization/core_orchestration.sh +0 -76
  86. package/.claude/skills/cfn-redis-coordination/validate-parameters.sh +0 -492
  87. package/claude-assets/skills/cfn-redis-coordination/HEARTBEAT.md +0 -57
  88. package/claude-assets/skills/cfn-redis-coordination/HEARTBEAT_MONITORING.md +0 -267
  89. package/claude-assets/skills/cfn-redis-coordination/LOGGING.md +0 -260
  90. package/claude-assets/skills/cfn-redis-coordination/README.md +0 -65
  91. package/claude-assets/skills/cfn-redis-coordination/SECURITY_REVIEW.md +0 -25
  92. package/claude-assets/skills/cfn-redis-coordination/SHUTDOWN_HANDLING.md +0 -164
  93. package/claude-assets/skills/cfn-redis-coordination/SKILL.md +0 -720
  94. package/claude-assets/skills/cfn-redis-coordination/demos/test-dlq.sh +0 -129
  95. package/claude-assets/skills/cfn-redis-coordination/demos/test-iteration-feedback.sh +0 -320
  96. package/claude-assets/skills/cfn-redis-coordination/demos/test-orchestrator.sh +0 -249
  97. package/claude-assets/skills/cfn-redis-coordination/demos/test-priority-wake-phase4-unix.sh +0 -148
  98. package/claude-assets/skills/cfn-redis-coordination/demos/test-priority-wake-phase4.sh +0 -163
  99. package/claude-assets/skills/cfn-redis-coordination/demos/test-priority-wake.sh +0 -138
  100. package/claude-assets/skills/cfn-redis-coordination/demos/test-quick-fix.sh +0 -81
  101. package/claude-assets/skills/cfn-redis-coordination/demos/test-quorum-absolute.sh +0 -45
  102. package/claude-assets/skills/cfn-redis-coordination/demos/test-quorum-fallback.sh +0 -68
  103. package/claude-assets/skills/cfn-redis-coordination/demos/test-quorum-percentage.sh +0 -56
  104. package/claude-assets/skills/cfn-redis-coordination/demos/test-quorum-with-retry.sh +0 -81
  105. package/claude-assets/skills/cfn-redis-coordination/demos/test-quorum.sh +0 -57
  106. package/claude-assets/skills/cfn-redis-coordination/demos/test-shutdown-handling.sh +0 -187
  107. package/claude-assets/skills/cfn-redis-coordination/demos/test-shutdown.sh +0 -160
  108. package/claude-assets/skills/cfn-redis-coordination/demos/test-utils-unix.sh +0 -97
  109. package/claude-assets/skills/cfn-redis-coordination/demos/test-utils.sh +0 -97
  110. package/claude-assets/skills/cfn-redis-coordination/demos/test-waiting-mode.sh +0 -59
  111. package/claude-assets/skills/cfn-redis-coordination/examples/README.md +0 -73
  112. package/claude-assets/skills/cfn-redis-coordination/examples/grafana-dashboard.json +0 -352
  113. package/claude-assets/skills/cfn-redis-coordination/examples/hierarchical-pattern.sh +0 -127
  114. package/claude-assets/skills/cfn-redis-coordination/examples/mesh-pattern.sh +0 -171
  115. package/claude-assets/skills/cfn-redis-coordination/examples/timeout-handling.sh +0 -227
  116. package/claude-assets/skills/cfn-redis-coordination/examples/waiting-mode-pattern.sh +0 -239
  117. package/claude-assets/skills/cfn-redis-coordination/execute-product-owner-decision.sh +0 -258
  118. package/claude-assets/skills/cfn-redis-coordination/get-agent-timeout.sh +0 -177
  119. package/claude-assets/skills/cfn-redis-coordination/heartbeat-functions.sh +0 -137
  120. package/claude-assets/skills/cfn-redis-coordination/heartbeat-protocol.md +0 -106
  121. package/claude-assets/skills/cfn-redis-coordination/heartbeat.sh +0 -126
  122. package/claude-assets/skills/cfn-redis-coordination/init-swarm.sh +0 -148
  123. package/claude-assets/skills/cfn-redis-coordination/invoke-redis-pattern.sh +0 -220
  124. package/claude-assets/skills/cfn-redis-coordination/invoke-waiting-mode.sh +0 -283
  125. package/claude-assets/skills/cfn-redis-coordination/list-active-swarms.sh +0 -147
  126. package/claude-assets/skills/cfn-redis-coordination/log-event.sh +0 -109
  127. package/claude-assets/skills/cfn-redis-coordination/metrics-export.sh +0 -674
  128. package/claude-assets/skills/cfn-redis-coordination/metrics-schema.json +0 -66
  129. package/claude-assets/skills/cfn-redis-coordination/metrics-storage.md +0 -31
  130. package/claude-assets/skills/cfn-redis-coordination/monitor-cfn-violations.sh +0 -391
  131. package/claude-assets/skills/cfn-redis-coordination/monitor-heartbeats.sh +0 -101
  132. package/claude-assets/skills/cfn-redis-coordination/orchestrate-cfn-loop-v3.sh +0 -141
  133. package/claude-assets/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh +0 -31
  134. package/claude-assets/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.bak +0 -0
  135. package/claude-assets/skills/cfn-redis-coordination/priority-wake-mechanism.md +0 -75
  136. package/claude-assets/skills/cfn-redis-coordination/priority_wake.py +0 -134
  137. package/claude-assets/skills/cfn-redis-coordination/query-dlq.sh +0 -162
  138. package/claude-assets/skills/cfn-redis-coordination/query-logs.sh +0 -103
  139. package/claude-assets/skills/cfn-redis-coordination/redis-pattern.sh +0 -619
  140. package/claude-assets/skills/cfn-redis-coordination/retrieve-context.sh +0 -58
  141. package/claude-assets/skills/cfn-redis-coordination/select-specialist-agent.sh +0 -371
  142. package/claude-assets/skills/cfn-redis-coordination/semantic-match-tfidf.py +0 -252
  143. package/claude-assets/skills/cfn-redis-coordination/send-heartbeat.sh +0 -165
  144. package/claude-assets/skills/cfn-redis-coordination/signal.sh +0 -38
  145. package/claude-assets/skills/cfn-redis-coordination/store-context.sh +0 -86
  146. package/claude-assets/skills/cfn-redis-coordination/store-epic-context.sh +0 -123
  147. package/claude-assets/skills/cfn-redis-coordination/test-context-injection.sh +0 -354
  148. package/claude-assets/skills/cfn-redis-coordination/test-timeout-enforcement.sh +0 -513
  149. package/claude-assets/skills/cfn-redis-coordination/tests/convert-line-endings.sh +0 -15
  150. package/claude-assets/skills/cfn-redis-coordination/tests/dlq-functionality-test.sh +0 -102
  151. package/claude-assets/skills/cfn-redis-coordination/tests/edge-cases-test.sh +0 -99
  152. package/claude-assets/skills/cfn-redis-coordination/tests/integration-test.sh +0 -170
  153. package/claude-assets/skills/cfn-redis-coordination/tests/retry-mechanism-test.sh +0 -82
  154. package/claude-assets/skills/cfn-redis-coordination/tests/run-test-suite.sh +0 -92
  155. package/claude-assets/skills/cfn-redis-coordination/tests/run-tests.sh +0 -4
  156. package/claude-assets/skills/cfn-redis-coordination/tests/test-heartbeat-monitoring.sh +0 -418
  157. package/claude-assets/skills/cfn-redis-coordination/tests/test-heartbeat-simple.sh +0 -124
  158. package/claude-assets/skills/cfn-redis-coordination/tests/test-primitives.sh +0 -166
  159. package/claude-assets/skills/cfn-redis-coordination/tests/test-utils.sh +0 -54
  160. package/claude-assets/skills/cfn-redis-coordination/tests/test_utils.sh +0 -49
  161. package/claude-assets/skills/cfn-redis-coordination/v2_modularization/core_orchestration.sh +0 -76
  162. 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