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