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,165 +0,0 @@
1
- #!/bin/bash
2
- # Redis Coordination Skill - Agent Heartbeat Sender
3
- # Version: 2.0.0
4
- # Last Updated: 2025-10-20
5
- #
6
- # Usage:
7
- # # One-shot heartbeat (original behavior)
8
- # ./send-heartbeat.sh --task-id <id> --agent-id <id>
9
- #
10
- # # Start continuous heartbeat loop
11
- # ./send-heartbeat.sh start --task-id <id> --agent-id <id> --interval 30 &
12
- # HEARTBEAT_PID=$!
13
- #
14
- # # Stop heartbeat loop
15
- # ./send-heartbeat.sh stop --task-id <id> --agent-id <id> --pid $HEARTBEAT_PID
16
-
17
- # Strict error handling
18
- set -euo pipefail
19
-
20
- # Default values
21
- ACTION=""
22
- TASK_ID=""
23
- AGENT_ID=""
24
- STATUS="active"
25
- TTL=60
26
- INTERVAL=30 # For continuous mode
27
- HEARTBEAT_PID=""
28
- DETAILS='{}'
29
-
30
- # Parse command-line arguments
31
- while [[ $# -gt 0 ]]; do
32
- case "$1" in
33
- start|stop|once)
34
- ACTION="$1"
35
- shift
36
- ;;
37
- --task-id)
38
- TASK_ID="$2"
39
- shift 2
40
- ;;
41
- --agent-id)
42
- AGENT_ID="$2"
43
- shift 2
44
- ;;
45
- --status)
46
- STATUS="$2"
47
- shift 2
48
- ;;
49
- --ttl)
50
- TTL="$2"
51
- shift 2
52
- ;;
53
- --interval)
54
- INTERVAL="$2"
55
- shift 2
56
- ;;
57
- --pid)
58
- HEARTBEAT_PID="$2"
59
- shift 2
60
- ;;
61
- --details)
62
- DETAILS="$2"
63
- shift 2
64
- ;;
65
- *)
66
- echo "Unknown parameter: $1"
67
- exit 1
68
- ;;
69
- esac
70
- done
71
-
72
- # Validate required parameters
73
- if [[ -z "$TASK_ID" || -z "$AGENT_ID" ]]; then
74
- echo "Error: task-id and agent-id are required"
75
- exit 1
76
- fi
77
-
78
- # If no action specified, default to one-shot (backward compatibility)
79
- if [ -z "$ACTION" ]; then
80
- ACTION="once"
81
- fi
82
-
83
- HEARTBEAT_KEY="swarm:${TASK_ID}:${AGENT_ID}:heartbeat"
84
- MARKER_FILE="/tmp/heartbeat-${TASK_ID}-${AGENT_ID}.active"
85
-
86
- ##############################################################################
87
- # Send single heartbeat
88
- ##############################################################################
89
- function send_heartbeat() {
90
- # Generate heartbeat payload
91
- HEARTBEAT_PAYLOAD=$(jq -n \
92
- --arg timestamp "$(date +%s)" \
93
- --arg status "$STATUS" \
94
- --arg task_id "$TASK_ID" \
95
- --arg agent_id "$AGENT_ID" \
96
- --argjson details "$DETAILS" \
97
- '{
98
- "timestamp": $timestamp,
99
- "status": $status,
100
- "task_id": $task_id,
101
- "agent_id": $agent_id,
102
- "details": $details
103
- }')
104
-
105
- # Send heartbeat via Redis with auto-expiration
106
- redis-cli setex "$HEARTBEAT_KEY" "$TTL" "$HEARTBEAT_PAYLOAD" >/dev/null
107
- }
108
-
109
- ##############################################################################
110
- # Start continuous heartbeat loop
111
- ##############################################################################
112
- function start_heartbeat() {
113
- # Create marker file
114
- touch "$MARKER_FILE"
115
-
116
- # Background heartbeat loop
117
- (
118
- while [ -f "$MARKER_FILE" ]; do
119
- send_heartbeat
120
- sleep "$INTERVAL"
121
- done
122
- ) &
123
-
124
- echo "✓ Heartbeat started for $AGENT_ID (PID: $!, interval: ${INTERVAL}s)" >&2
125
- }
126
-
127
- ##############################################################################
128
- # Stop heartbeat loop
129
- ##############################################################################
130
- function stop_heartbeat() {
131
- # Remove marker file to stop loop
132
- rm -f "$MARKER_FILE"
133
-
134
- # Kill heartbeat process if PID provided
135
- if [ -n "$HEARTBEAT_PID" ] && kill -0 "$HEARTBEAT_PID" 2>/dev/null; then
136
- kill "$HEARTBEAT_PID" 2>/dev/null || true
137
- fi
138
-
139
- # Clean up heartbeat key
140
- redis-cli DEL "$HEARTBEAT_KEY" >/dev/null
141
-
142
- echo "✓ Heartbeat stopped for $AGENT_ID" >&2
143
- }
144
-
145
- ##############################################################################
146
- # Main
147
- ##############################################################################
148
- case "$ACTION" in
149
- start)
150
- start_heartbeat
151
- ;;
152
- stop)
153
- stop_heartbeat
154
- ;;
155
- once)
156
- send_heartbeat
157
- echo "✓ Heartbeat sent for $AGENT_ID" >&2
158
- ;;
159
- *)
160
- echo "Error: Invalid action: $ACTION"
161
- exit 1
162
- ;;
163
- esac
164
-
165
- exit 0
@@ -1,38 +0,0 @@
1
- #!/bin/bash
2
-
3
- # Parse arguments
4
- while [[ $# -gt 0 ]]; do
5
- case "$1" in
6
- --key)
7
- key="$2"
8
- shift 2
9
- ;;
10
- --value)
11
- value="$2"
12
- shift 2
13
- ;;
14
- --ttl)
15
- ttl="$2"
16
- shift 2
17
- ;;
18
- *)
19
- echo "Unknown argument: $1"
20
- exit 1
21
- ;;
22
- esac
23
- done
24
-
25
- # Validate required arguments
26
- if [[ -z "$key" || -z "$value" ]]; then
27
- echo "Error: Both key and value are required"
28
- exit 1
29
- fi
30
-
31
- # Default TTL to 3600 if not provided
32
- ttl=${ttl:-3600}
33
-
34
- # Store signal in Redis with specified TTL
35
- redis-cli setex "$key" "$ttl" "$value"
36
-
37
- # Exit successfully
38
- exit 0
@@ -1,86 +0,0 @@
1
- #!/bin/bash
2
-
3
- # Redis Context Storage Primitive
4
- # Updated interface to match orchestrator expectations
5
- # Supports both legacy (--key --context) and new (--task-id --key --value --namespace) interfaces
6
-
7
- # Initialize variables
8
- task_id=""
9
- key=""
10
- value=""
11
- namespace="swarm"
12
- ttl=3600
13
- append_mode=false
14
-
15
- # Parse arguments
16
- while [[ $# -gt 0 ]]; do
17
- case "$1" in
18
- --task-id)
19
- task_id="$2"
20
- shift 2
21
- ;;
22
- --key)
23
- key="$2"
24
- shift 2
25
- ;;
26
- --value)
27
- value="$2"
28
- shift 2
29
- ;;
30
- --context)
31
- # Legacy support: --context is alias for --value
32
- value="$2"
33
- shift 2
34
- ;;
35
- --namespace)
36
- namespace="$2"
37
- shift 2
38
- ;;
39
- --ttl)
40
- ttl="$2"
41
- shift 2
42
- ;;
43
- --append)
44
- append_mode=true
45
- shift
46
- ;;
47
- *)
48
- echo "Unknown argument: $1" >&2
49
- exit 1
50
- ;;
51
- esac
52
- done
53
-
54
- # Construct Redis key based on interface mode
55
- if [[ -n "$task_id" ]]; then
56
- # New interface: {namespace}:{task_id}:{key}
57
- redis_key="${namespace}:${task_id}:${key}"
58
- else
59
- # Legacy interface: key is used directly
60
- redis_key="$key"
61
- fi
62
-
63
- # Validate required arguments
64
- if [[ -z "$redis_key" || -z "$value" ]]; then
65
- echo "Error: Both key and value are required" >&2
66
- echo "Usage: $0 --task-id <id> --key <key> --value <data> [--namespace <ns>] [--ttl <seconds>] [--append]" >&2
67
- echo " or: $0 --key <full-key> --context <data> [--ttl <seconds>]" >&2
68
- exit 1
69
- fi
70
-
71
- # Handle append mode
72
- if [ "$append_mode" = true ]; then
73
- # Get existing value
74
- existing=$(redis-cli get "$redis_key" 2>/dev/null)
75
-
76
- # Append new value (comma-separated)
77
- if [[ -n "$existing" && "$existing" != "(nil)" ]]; then
78
- value="${existing},${value}"
79
- fi
80
- fi
81
-
82
- # Store in Redis with specified TTL
83
- redis-cli setex "$redis_key" "$ttl" "$value" >/dev/null
84
-
85
- # Exit successfully
86
- exit 0
@@ -1,123 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- ##############################################################################
4
- # Store Epic Context in Redis
5
- # Stores epic-level context for CLI-spawned agents to access
6
- #
7
- # Usage:
8
- # ./store-epic-context.sh --task-id <id> \
9
- # --epic-context <json> \
10
- # [--phase-context <json>] \
11
- # [--success-criteria <json>] \
12
- # [--ttl <seconds>]
13
- #
14
- # Example:
15
- # ./store-epic-context.sh --task-id "epic-auth-123" \
16
- # --epic-context '{
17
- # "epicGoal": "Build authentication system",
18
- # "inScope": ["JWT auth", "RBAC", "Session management"],
19
- # "outOfScope": ["OAuth", "MFA", "Biometrics"],
20
- # "phases": ["assessment", "implementation", "validation"]
21
- # }' \
22
- # --phase-context '{
23
- # "currentPhase": "assessment",
24
- # "dependencies": [],
25
- # "deliverables": ["Requirements doc", "Architecture design"]
26
- # }' \
27
- # --success-criteria '{
28
- # "acceptanceCriteria": [
29
- # "Core functionality implemented",
30
- # "Tests pass >80% coverage",
31
- # "Security review complete"
32
- # ],
33
- # "gateThreshold": 0.75,
34
- # "consensusThreshold": 0.90
35
- # }' \
36
- # --ttl 86400
37
- #
38
- # Redis Keys Created:
39
- # - swarm:<task-id>:epic-context
40
- # - swarm:<task-id>:phase-context
41
- # - swarm:<task-id>:success-criteria
42
- #
43
- # These keys are automatically read by cfn-spawn and injected as environment
44
- # variables into spawned agents:
45
- # - EPIC_CONTEXT
46
- # - PHASE_CONTEXT
47
- # - SUCCESS_CRITERIA
48
- ##############################################################################
49
-
50
- set -euo pipefail
51
-
52
- # Configuration
53
- TASK_ID=""
54
- EPIC_CONTEXT=""
55
- PHASE_CONTEXT=""
56
- SUCCESS_CRITERIA=""
57
- TTL=86400 # 24 hours default
58
-
59
- # Parse arguments
60
- while [[ $# -gt 0 ]]; do
61
- case $1 in
62
- --task-id)
63
- TASK_ID="$2"
64
- shift 2
65
- ;;
66
- --epic-context)
67
- EPIC_CONTEXT="$2"
68
- shift 2
69
- ;;
70
- --phase-context)
71
- PHASE_CONTEXT="$2"
72
- shift 2
73
- ;;
74
- --success-criteria)
75
- SUCCESS_CRITERIA="$2"
76
- shift 2
77
- ;;
78
- --ttl)
79
- TTL="$2"
80
- shift 2
81
- ;;
82
- *)
83
- echo "Unknown option: $1"
84
- exit 1
85
- ;;
86
- esac
87
- done
88
-
89
- # Validation
90
- if [ -z "$TASK_ID" ]; then
91
- echo "Error: --task-id is required"
92
- exit 1
93
- fi
94
-
95
- if [ -z "$EPIC_CONTEXT" ]; then
96
- echo "Error: --epic-context is required"
97
- exit 1
98
- fi
99
-
100
- # Store epic context
101
- echo "Storing epic context for task: $TASK_ID"
102
-
103
- if [ -n "$EPIC_CONTEXT" ]; then
104
- redis-cli set "swarm:${TASK_ID}:epic-context" "$EPIC_CONTEXT" EX "$TTL" > /dev/null
105
- echo " ✓ Epic context stored (TTL: ${TTL}s)"
106
- fi
107
-
108
- if [ -n "$PHASE_CONTEXT" ]; then
109
- redis-cli set "swarm:${TASK_ID}:phase-context" "$PHASE_CONTEXT" EX "$TTL" > /dev/null
110
- echo " ✓ Phase context stored (TTL: ${TTL}s)"
111
- fi
112
-
113
- if [ -n "$SUCCESS_CRITERIA" ]; then
114
- redis-cli set "swarm:${TASK_ID}:success-criteria" "$SUCCESS_CRITERIA" EX "$TTL" > /dev/null
115
- echo " ✓ Success criteria stored (TTL: ${TTL}s)"
116
- fi
117
-
118
- echo "✅ Context storage complete"
119
- echo ""
120
- echo "CLI-spawned agents will automatically receive this context via environment variables:"
121
- echo " - EPIC_CONTEXT"
122
- echo " - PHASE_CONTEXT"
123
- echo " - SUCCESS_CRITERIA"