claude-flow-novice 2.15.6 → 2.15.8
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.
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-coordinator.md +1 -1
- package/.claude/cfn-extras/docs/GOOGLE_SHEETS_CFN_LOOP.md +13 -11
- package/.claude/skills/cfn-loop-orchestration/helpers/gate-check.sh +39 -577
- package/.claude/skills/cfn-loop-orchestration/helpers/parse-test-results.sh +49 -270
- package/.claude/skills/cfn-loop-orchestration/src/helpers/consensus.ts +87 -0
- package/.claude/skills/cfn-loop-orchestration/src/helpers/deliverable-verifier.ts +103 -0
- package/.claude/skills/cfn-loop-orchestration/src/helpers/gate-check.ts +115 -0
- package/.claude/skills/cfn-loop-orchestration/src/helpers/iteration-manager.ts +45 -0
- package/.claude/skills/cfn-loop-orchestration/src/helpers/parse-test-results.ts +372 -0
- package/.claude/skills/cfn-loop-orchestration/src/helpers/timeout-calculator.ts +41 -0
- package/.claude/skills/cfn-loop-orchestration/tests/consensus.test.ts +142 -0
- package/.claude/skills/cfn-loop-orchestration/tests/deliverable-verifier.test.ts +197 -0
- package/.claude/skills/cfn-loop-orchestration/tests/gate-check.test.ts +325 -0
- package/.claude/skills/cfn-loop-orchestration/tests/iteration-manager.test.ts +132 -0
- package/.claude/skills/cfn-loop-orchestration/tests/parse-test-results.test.ts +382 -0
- package/.claude/skills/cfn-loop-orchestration/tests/timeout-calculator.test.ts +118 -0
- package/.claude/skills/cfn-redis-coordination/coverage/clover.xml +1447 -0
- package/.claude/skills/cfn-redis-coordination/coverage/coverage-final.json +13 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/agent-logger.ts.html +1423 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/agent-recovery.ts.html +1447 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/base.css +224 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/block-navigation.js +87 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/completion-reporter.ts.html +1273 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/context-manager.ts.html +1066 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/favicon.png +0 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/index.html +281 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/mode-detector.ts.html +550 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/prettify.css +1 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/prettify.js +2 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/redis-client.ts.html +2047 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/result-collector.ts.html +1396 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/sorter.js +210 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/swarm-manager.ts.html +1567 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/task-analyzer.ts.html +1297 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/task-executor.ts.html +1354 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/types.ts.html +790 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/waiting-coordinator.ts.html +1846 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov.info +2650 -0
- package/.claude/skills/cfn-redis-coordination/dist/task-analyzer.js +1 -1
- package/.claude/skills/cfn-redis-coordination/src/task-analyzer.ts +1 -1
- package/.claude/skills/cfn-redis-coordination/tests/coordination.test.ts +18 -9
- package/claude-assets/agents/cfn-dev-team/coordinators/cfn-frontend-coordinator.md +13 -72
- package/claude-assets/agents/cfn-dev-team/coordinators/cfn-v3-coordinator.md +5 -65
- package/claude-assets/agents/cfn-dev-team/coordinators/consensus-builder.md +465 -508
- package/claude-assets/agents/cfn-dev-team/coordinators/handoff-coordinator.md +733 -743
- package/claude-assets/agents/cfn-dev-team/coordinators/multi-sprint-coordinator.md +13 -79
- package/claude-assets/agents/cfn-dev-team/dev-ops/docker-specialist.md +13 -18
- package/claude-assets/agents/cfn-dev-team/dev-ops/kubernetes-specialist.md +13 -18
- package/claude-assets/agents/cfn-dev-team/developers/api-gateway-specialist.md +13 -18
- package/claude-assets/agents/cfn-dev-team/developers/backend-developer.md +15 -17
- package/claude-assets/agents/cfn-dev-team/developers/data/data-engineer.md +15 -17
- package/claude-assets/agents/cfn-dev-team/developers/database/database-architect.md +15 -14
- package/claude-assets/agents/cfn-dev-team/developers/frontend/mobile-dev.md +15 -17
- package/claude-assets/agents/cfn-dev-team/developers/frontend/react-frontend-engineer.md +15 -17
- package/claude-assets/agents/cfn-dev-team/developers/frontend/typescript-specialist.md +15 -17
- package/claude-assets/agents/cfn-dev-team/developers/frontend/ui-designer.md +23 -30
- package/claude-assets/agents/cfn-dev-team/developers/graphql-specialist.md +13 -18
- package/claude-assets/agents/cfn-dev-team/developers/rust-developer.md +13 -18
- package/claude-assets/agents/cfn-dev-team/reviewers/code-reviewer.md +312 -317
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/code-quality-validator.md +23 -20
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/perf-analyzer.md +23 -20
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/performance-benchmarker.md +23 -20
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/security-specialist.md +23 -20
- package/claude-assets/agents/cfn-dev-team/testers/api-testing-specialist.md +15 -20
- package/claude-assets/agents/cfn-dev-team/testers/chaos-engineering-specialist.md +15 -20
- package/claude-assets/agents/cfn-dev-team/testers/contract-tester.md +718 -737
- package/claude-assets/agents/cfn-dev-team/testers/integration-tester.md +817 -828
- package/claude-assets/agents/cfn-dev-team/testers/interaction-tester.md +15 -20
- package/claude-assets/agents/cfn-dev-team/testers/load-testing-specialist.md +8 -9
- package/claude-assets/agents/cfn-dev-team/testers/mutation-testing-specialist.md +668 -684
- package/claude-assets/agents/cfn-dev-team/testers/playwright-tester.md +15 -20
- package/claude-assets/agents/cfn-dev-team/testers/tester.md +248 -253
- package/claude-assets/agents/cfn-dev-team/utility/epic-creator.md +13 -18
- package/claude-assets/agents/cfn-dev-team/utility/memory-leak-specialist.md +13 -18
- package/claude-assets/agents/cfn-dev-team/utility/z-ai-specialist.md +13 -18
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-coordinator.md +1 -1
- package/claude-assets/cfn-extras/docs/GOOGLE_SHEETS_CFN_LOOP.md +13 -11
- package/claude-assets/skills/cfn-loop-orchestration/helpers/gate-check.sh +39 -577
- package/claude-assets/skills/cfn-loop-orchestration/helpers/parse-test-results.sh +49 -270
- package/claude-assets/skills/cfn-loop-orchestration/src/helpers/consensus.ts +87 -0
- package/claude-assets/skills/cfn-loop-orchestration/src/helpers/deliverable-verifier.ts +103 -0
- package/claude-assets/skills/cfn-loop-orchestration/src/helpers/gate-check.ts +115 -0
- package/claude-assets/skills/cfn-loop-orchestration/src/helpers/iteration-manager.ts +45 -0
- package/claude-assets/skills/cfn-loop-orchestration/src/helpers/parse-test-results.ts +372 -0
- package/claude-assets/skills/cfn-loop-orchestration/src/helpers/timeout-calculator.ts +41 -0
- package/claude-assets/skills/cfn-loop-orchestration/tests/consensus.test.ts +142 -0
- package/claude-assets/skills/cfn-loop-orchestration/tests/deliverable-verifier.test.ts +197 -0
- package/claude-assets/skills/cfn-loop-orchestration/tests/gate-check.test.ts +325 -0
- package/claude-assets/skills/cfn-loop-orchestration/tests/iteration-manager.test.ts +132 -0
- package/claude-assets/skills/cfn-loop-orchestration/tests/parse-test-results.test.ts +382 -0
- package/claude-assets/skills/cfn-loop-orchestration/tests/timeout-calculator.test.ts +118 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/clover.xml +1447 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/coverage-final.json +13 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/agent-logger.ts.html +1423 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/agent-recovery.ts.html +1447 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/base.css +224 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/block-navigation.js +87 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/completion-reporter.ts.html +1273 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/context-manager.ts.html +1066 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/favicon.png +0 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/index.html +281 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/mode-detector.ts.html +550 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/prettify.css +1 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/prettify.js +2 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/redis-client.ts.html +2047 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/result-collector.ts.html +1396 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/sorter.js +210 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/swarm-manager.ts.html +1567 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/task-analyzer.ts.html +1297 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/task-executor.ts.html +1354 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/types.ts.html +790 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/waiting-coordinator.ts.html +1846 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov.info +2650 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/task-analyzer.js +1 -1
- package/claude-assets/skills/cfn-redis-coordination/src/task-analyzer.ts +1 -1
- package/claude-assets/skills/cfn-redis-coordination/tests/coordination.test.ts +18 -9
- package/dist/agents/agent-loader.js +165 -146
- package/dist/agents/agent-loader.js.map +1 -1
- package/package.json +1 -1
- package/scripts/clean-agent-profiles.sh +112 -0
|
@@ -45,25 +45,18 @@ fi
|
|
|
45
45
|
|
|
46
46
|
**Old (Deprecated):**
|
|
47
47
|
```bash
|
|
48
|
-
redis-cli HSET "swarm:${TASK_ID}:confidence:iteration${ITERATION}" \
|
|
49
|
-
"${AGENT_ID}" "0.85"
|
|
50
|
-
```
|
|
51
48
|
|
|
52
49
|
**New (Required):**
|
|
53
50
|
```bash
|
|
54
51
|
# Execute tests and capture output
|
|
55
52
|
TEST_OUTPUT=$(npm test 2>&1)
|
|
56
53
|
|
|
57
|
-
# Parse
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
redis-cli HSET "swarm:${TASK_ID}:test-results:iteration${ITERATION}" \
|
|
63
|
-
"${AGENT_ID}" "$RESULTS"
|
|
54
|
+
# Parse natively (no external dependencies)
|
|
55
|
+
PASS=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= passing)' || echo "0")
|
|
56
|
+
FAIL=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= failing)' || echo "0")
|
|
57
|
+
TOTAL=$((PASS + FAIL))
|
|
58
|
+
RATE=$(awk "BEGIN {if ($TOTAL > 0) printf \"%.2f\", $PASS/$TOTAL; else print \"0.00\"}")
|
|
64
59
|
|
|
65
|
-
# Signal completion
|
|
66
|
-
redis-cli LPUSH "swarm:${TASK_ID}:completion:${AGENT_ID}" "done"
|
|
67
60
|
```
|
|
68
61
|
|
|
69
62
|
## Core Responsibilities
|
|
@@ -99,30 +92,12 @@ When spawned via CLI (`npx claude-flow-novice agent-spawn`), implement Redis-bas
|
|
|
99
92
|
#### 1. Epic Context Storage
|
|
100
93
|
```bash
|
|
101
94
|
# Store epic-level configuration in Redis
|
|
102
|
-
redis-cli HSET "epic:task:${TASK_ID}:context" \
|
|
103
|
-
"epic_name" "${EPIC_NAME}" \
|
|
104
|
-
"epic_goal" "${EPIC_GOAL}" \
|
|
105
|
-
"in_scope" "${IN_SCOPE}" \
|
|
106
|
-
"out_of_scope" "${OUT_OF_SCOPE}" \
|
|
107
|
-
"total_sprints" "${TOTAL_SPRINTS}" \
|
|
108
|
-
"current_sprint" "1" \
|
|
109
|
-
"epic_status" "initializing" \
|
|
110
|
-
"mode" "${MODE}" \
|
|
111
|
-
"created_at" "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
112
95
|
|
|
113
96
|
# Store sprint decomposition
|
|
114
97
|
for i in "${!SPRINTS[@]}"; do
|
|
115
98
|
sprint_num=$((i + 1))
|
|
116
99
|
sprint_data="${SPRINTS[$i]}"
|
|
117
100
|
|
|
118
|
-
redis-cli HSET "epic:task:${TASK_ID}:sprint:${sprint_num}" \
|
|
119
|
-
"sprint_name" "$(echo "$sprint_data" | jq -r '.sprint_name')" \
|
|
120
|
-
"deliverables" "$(echo "$sprint_data" | jq -r '.deliverables | join(",")')" \
|
|
121
|
-
"in_scope" "$(echo "$sprint_data" | jq -r '.in_scope | join(",")')" \
|
|
122
|
-
"out_of_scope" "$(echo "$sprint_data" | jq -r '.out_of_scope | join(",")')" \
|
|
123
|
-
"directory" "$(echo "$sprint_data" | jq -r '.directory')" \
|
|
124
|
-
"status" "pending" \
|
|
125
|
-
"dependencies" "$(echo "$sprint_data" | jq -r '.dependencies | join(",")')"
|
|
126
101
|
done
|
|
127
102
|
|
|
128
103
|
# Store dependency graph
|
|
@@ -139,14 +114,8 @@ execute_sprint() {
|
|
|
139
114
|
echo "🏃 Executing Sprint ${sprint_num}/${TOTAL_SPRINTS}: $(echo "$sprint_data" | jq -r '.sprint_name')"
|
|
140
115
|
|
|
141
116
|
# Update sprint status
|
|
142
|
-
redis-cli HSET "epic:task:${TASK_ID}:sprint:${sprint_num}" \
|
|
143
|
-
"status" "running" \
|
|
144
|
-
"started_at" "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
145
117
|
|
|
146
118
|
# Update epic status
|
|
147
|
-
redis-cli HSET "epic:task:${TASK_ID}:context" \
|
|
148
|
-
"current_sprint" "$sprint_num" \
|
|
149
|
-
"epic_status" "sprint_executing"
|
|
150
119
|
|
|
151
120
|
# Prepare sprint context for CFN Loop
|
|
152
121
|
SPRINT_CONTEXT=$(cat <<EOF
|
|
@@ -185,10 +154,6 @@ EOF
|
|
|
185
154
|
|
|
186
155
|
if [ $SPRINT_RESULT -eq 0 ]; then
|
|
187
156
|
# Sprint completed successfully
|
|
188
|
-
redis-cli HSET "epic:task:${TASK_ID}:sprint:${sprint_num}" \
|
|
189
|
-
"status" "completed" \
|
|
190
|
-
"completed_at" "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
|
|
191
|
-
"result" "success"
|
|
192
157
|
|
|
193
158
|
# Store sprint deliverables
|
|
194
159
|
store_sprint_deliverables "$sprint_num" "$sprint_data"
|
|
@@ -197,10 +162,6 @@ EOF
|
|
|
197
162
|
return 0
|
|
198
163
|
else
|
|
199
164
|
# Sprint failed
|
|
200
|
-
redis-cli HSET "epic:task:${TASK_ID}:sprint:${sprint_num}" \
|
|
201
|
-
"status" "failed" \
|
|
202
|
-
"failed_at" "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
|
|
203
|
-
"result" "failure"
|
|
204
165
|
|
|
205
166
|
echo "❌ Sprint ${sprint_num} failed"
|
|
206
167
|
return 1
|
|
@@ -279,9 +240,6 @@ execute_epic_sequentially() {
|
|
|
279
240
|
# Check dependencies
|
|
280
241
|
if ! check_sprint_dependencies "$sprint_num" "$dependencies"; then
|
|
281
242
|
echo "❌ Dependencies not satisfied for Sprint ${sprint_num}. Aborting epic."
|
|
282
|
-
redis-cli HSET "epic:task:${TASK_ID}:context" \
|
|
283
|
-
"epic_status" "dependency_failure" \
|
|
284
|
-
"failed_at_sprint" "$sprint_num"
|
|
285
243
|
return 1
|
|
286
244
|
fi
|
|
287
245
|
|
|
@@ -303,9 +261,6 @@ execute_epic_sequentially() {
|
|
|
303
261
|
echo "⚠️ Continuing epic despite Sprint ${sprint_num} failure"
|
|
304
262
|
else
|
|
305
263
|
echo "❌ Aborting epic due to Sprint ${sprint_num} failure"
|
|
306
|
-
redis-cli HSET "epic:task:${TASK_ID}:context" \
|
|
307
|
-
"epic_status" "aborted" \
|
|
308
|
-
"failed_at_sprint" "$sprint_num"
|
|
309
264
|
return 1
|
|
310
265
|
fi
|
|
311
266
|
fi
|
|
@@ -315,11 +270,6 @@ execute_epic_sequentially() {
|
|
|
315
270
|
done
|
|
316
271
|
|
|
317
272
|
# Epic completed successfully
|
|
318
|
-
redis-cli HSET "epic:task:${TASK_ID}:context" \
|
|
319
|
-
"epic_status" "completed" \
|
|
320
|
-
"completed_at" "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
|
|
321
|
-
"successful_sprints" "$successful_sprints" \
|
|
322
|
-
"failed_sprints" "$failed_sprints"
|
|
323
273
|
|
|
324
274
|
echo "🎉 Epic completed: ${successful_sprints}/${TOTAL_SPRINTS} sprints successful"
|
|
325
275
|
generate_epic_report
|
|
@@ -381,10 +331,6 @@ store_sprint_deliverables() {
|
|
|
381
331
|
done
|
|
382
332
|
|
|
383
333
|
# Store deliverable list
|
|
384
|
-
redis-cli HSET "epic:task:${TASK_ID}:sprint:${sprint_num}" \
|
|
385
|
-
"created_deliverables" "$(IFS=,; echo "${created_deliverables[*]}")" \
|
|
386
|
-
"expected_deliverables" "$(IFS=,; echo "${deliverables[*]}")" \
|
|
387
|
-
"deliverable_count" "${#created_deliverables[@]}"
|
|
388
334
|
}
|
|
389
335
|
|
|
390
336
|
# Store sprint execution metrics
|
|
@@ -395,10 +341,6 @@ store_sprint_metrics() {
|
|
|
395
341
|
# Get execution time from CFN Loop result
|
|
396
342
|
local execution_time=$(redis-cli HGET "cfn_loop:task:${TASK_ID}-sprint-${sprint_num}:result" "execution_time_seconds" || echo "0")
|
|
397
343
|
|
|
398
|
-
redis-cli HSET "epic:task:${TASK_ID}:sprint:${sprint_num}:metrics" \
|
|
399
|
-
"execution_time" "$execution_time" \
|
|
400
|
-
"result" "$result" \
|
|
401
|
-
"timestamp" "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
402
344
|
}
|
|
403
345
|
```
|
|
404
346
|
|
|
@@ -443,11 +385,6 @@ EOF
|
|
|
443
385
|
EOF
|
|
444
386
|
|
|
445
387
|
# Store report location in Redis
|
|
446
|
-
redis-cli HSET "epic:task:${TASK_ID}:result" \
|
|
447
|
-
"report_file" "$report_file" \
|
|
448
|
-
"epic_name" "$EPIC_NAME" \
|
|
449
|
-
"completion_status" "success" \
|
|
450
|
-
"report_generated_at" "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
451
388
|
|
|
452
389
|
echo "📊 Epic report generated: $report_file"
|
|
453
390
|
}
|
|
@@ -463,11 +400,6 @@ signal_epic_completion() {
|
|
|
463
400
|
|
|
464
401
|
if [[ -n "${TASK_ID:-}" && -n "${AGENT_ID:-}" ]]; then
|
|
465
402
|
# Store epic completion data
|
|
466
|
-
redis-cli HSET "epic:task:${TASK_ID}:completion" \
|
|
467
|
-
"confidence" "$confidence" \
|
|
468
|
-
"status" "$status" \
|
|
469
|
-
"summary" "$summary" \
|
|
470
|
-
"completed_at" "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
471
403
|
|
|
472
404
|
# Signal epic completion
|
|
473
405
|
redis-cli lpush "swarm:${TASK_ID}:${AGENT_ID}:done" "complete"
|
|
@@ -538,12 +470,14 @@ When spawned via Task() tool in Main Chat:
|
|
|
538
470
|
Complete your multi-sprint coordination work and provide test-based validation:
|
|
539
471
|
|
|
540
472
|
1. **Execute Tests**: Run all test suites from success criteria
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
473
|
+
# Parse natively (no external dependencies)
|
|
474
|
+
PASS=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= passing)' || echo "0")
|
|
475
|
+
FAIL=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= failing)' || echo "0")
|
|
476
|
+
TOTAL=$((PASS + FAIL))
|
|
477
|
+
RATE=$(awk "BEGIN {if ($TOTAL > 0) printf \"%.2f\", $PASS/$TOTAL; else print \"0.00\"}")
|
|
478
|
+
|
|
479
|
+
# Return results (Main Chat receives automatically in Task Mode)
|
|
480
|
+
echo "{\"passed\": $PASS, \"failed\": $FAIL, \"pass_rate\": $RATE}"
|
|
547
481
|
- Coverage: ≥80%
|
|
548
482
|
4. **Store in Redis**: Use test-results key (not confidence key)
|
|
549
483
|
5. **Signal Completion**: Push to completion queue
|
|
@@ -58,25 +58,18 @@ fi
|
|
|
58
58
|
|
|
59
59
|
**Old (Deprecated):**
|
|
60
60
|
```bash
|
|
61
|
-
redis-cli HSET "swarm:${TASK_ID}:confidence:iteration${ITERATION}" \
|
|
62
|
-
"${AGENT_ID}" "0.85"
|
|
63
|
-
```
|
|
64
61
|
|
|
65
62
|
**New (Required):**
|
|
66
63
|
```bash
|
|
67
64
|
# Execute tests and capture output
|
|
68
65
|
TEST_OUTPUT=$(npm test 2>&1)
|
|
69
66
|
|
|
70
|
-
# Parse
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
redis-cli HSET "swarm:${TASK_ID}:test-results:iteration${ITERATION}" \
|
|
76
|
-
"${AGENT_ID}" "$RESULTS"
|
|
67
|
+
# Parse natively (no external dependencies)
|
|
68
|
+
PASS=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= passing)' || echo "0")
|
|
69
|
+
FAIL=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= failing)' || echo "0")
|
|
70
|
+
TOTAL=$((PASS + FAIL))
|
|
71
|
+
RATE=$(awk "BEGIN {if ($TOTAL > 0) printf \"%.2f\", $PASS/$TOTAL; else print \"0.00\"}")
|
|
77
72
|
|
|
78
|
-
# Signal completion
|
|
79
|
-
redis-cli LPUSH "swarm:${TASK_ID}:completion:${AGENT_ID}" "done"
|
|
80
73
|
```
|
|
81
74
|
|
|
82
75
|
# Docker Specialist Agent
|
|
@@ -631,12 +624,14 @@ networks:
|
|
|
631
624
|
Complete your work and provide test-based validation:
|
|
632
625
|
|
|
633
626
|
1. **Execute Tests**: Run all test suites from success criteria
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
627
|
+
# Parse natively (no external dependencies)
|
|
628
|
+
PASS=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= passing)' || echo "0")
|
|
629
|
+
FAIL=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= failing)' || echo "0")
|
|
630
|
+
TOTAL=$((PASS + FAIL))
|
|
631
|
+
RATE=$(awk "BEGIN {if ($TOTAL > 0) printf \"%.2f\", $PASS/$TOTAL; else print \"0.00\"}")
|
|
632
|
+
|
|
633
|
+
# Return results (Main Chat receives automatically in Task Mode)
|
|
634
|
+
echo "{\"passed\": $PASS, \"failed\": $FAIL, \"pass_rate\": $RATE}"
|
|
640
635
|
- Coverage: ≥80%
|
|
641
636
|
4. **Store in Redis**: Use test-results key (not confidence key)
|
|
642
637
|
5. **Signal Completion**: Push to completion queue
|
|
@@ -59,25 +59,18 @@ fi
|
|
|
59
59
|
|
|
60
60
|
**Old (Deprecated):**
|
|
61
61
|
```bash
|
|
62
|
-
redis-cli HSET "swarm:${TASK_ID}:confidence:iteration${ITERATION}" \
|
|
63
|
-
"${AGENT_ID}" "0.85"
|
|
64
|
-
```
|
|
65
62
|
|
|
66
63
|
**New (Required):**
|
|
67
64
|
```bash
|
|
68
65
|
# Execute tests and capture output
|
|
69
66
|
TEST_OUTPUT=$(npm test 2>&1)
|
|
70
67
|
|
|
71
|
-
# Parse
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
redis-cli HSET "swarm:${TASK_ID}:test-results:iteration${ITERATION}" \
|
|
77
|
-
"${AGENT_ID}" "$RESULTS"
|
|
68
|
+
# Parse natively (no external dependencies)
|
|
69
|
+
PASS=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= passing)' || echo "0")
|
|
70
|
+
FAIL=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= failing)' || echo "0")
|
|
71
|
+
TOTAL=$((PASS + FAIL))
|
|
72
|
+
RATE=$(awk "BEGIN {if ($TOTAL > 0) printf \"%.2f\", $PASS/$TOTAL; else print \"0.00\"}")
|
|
78
73
|
|
|
79
|
-
# Signal completion
|
|
80
|
-
redis-cli LPUSH "swarm:${TASK_ID}:completion:${AGENT_ID}" "done"
|
|
81
74
|
```
|
|
82
75
|
|
|
83
76
|
# Kubernetes Specialist Agent
|
|
@@ -605,12 +598,14 @@ Before reporting high confidence:
|
|
|
605
598
|
Complete your work and provide test-based validation:
|
|
606
599
|
|
|
607
600
|
1. **Execute Tests**: Run all test suites from success criteria
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
601
|
+
# Parse natively (no external dependencies)
|
|
602
|
+
PASS=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= passing)' || echo "0")
|
|
603
|
+
FAIL=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= failing)' || echo "0")
|
|
604
|
+
TOTAL=$((PASS + FAIL))
|
|
605
|
+
RATE=$(awk "BEGIN {if ($TOTAL > 0) printf \"%.2f\", $PASS/$TOTAL; else print \"0.00\"}")
|
|
606
|
+
|
|
607
|
+
# Return results (Main Chat receives automatically in Task Mode)
|
|
608
|
+
echo "{\"passed\": $PASS, \"failed\": $FAIL, \"pass_rate\": $RATE}"
|
|
614
609
|
- Coverage: ≥80%
|
|
615
610
|
4. **Store in Redis**: Use test-results key (not confidence key)
|
|
616
611
|
5. **Signal Completion**: Push to completion queue
|
|
@@ -69,25 +69,18 @@ fi
|
|
|
69
69
|
|
|
70
70
|
**Old (Deprecated):**
|
|
71
71
|
```bash
|
|
72
|
-
redis-cli HSET "swarm:${TASK_ID}:confidence:iteration${ITERATION}" \
|
|
73
|
-
"${AGENT_ID}" "0.85"
|
|
74
|
-
```
|
|
75
72
|
|
|
76
73
|
**New (Required):**
|
|
77
74
|
```bash
|
|
78
75
|
# Execute tests and capture output
|
|
79
76
|
TEST_OUTPUT=$(npm test 2>&1)
|
|
80
77
|
|
|
81
|
-
# Parse
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
redis-cli HSET "swarm:${TASK_ID}:test-results:iteration${ITERATION}" \
|
|
87
|
-
"${AGENT_ID}" "$RESULTS"
|
|
78
|
+
# Parse natively (no external dependencies)
|
|
79
|
+
PASS=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= passing)' || echo "0")
|
|
80
|
+
FAIL=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= failing)' || echo "0")
|
|
81
|
+
TOTAL=$((PASS + FAIL))
|
|
82
|
+
RATE=$(awk "BEGIN {if ($TOTAL > 0) printf \"%.2f\", $PASS/$TOTAL; else print \"0.00\"}")
|
|
88
83
|
|
|
89
|
-
# Signal completion
|
|
90
|
-
redis-cli LPUSH "swarm:${TASK_ID}:completion:${AGENT_ID}" "done"
|
|
91
84
|
```
|
|
92
85
|
|
|
93
86
|
# API Gateway Specialist Agent
|
|
@@ -970,12 +963,14 @@ Before reporting high confidence:
|
|
|
970
963
|
Complete your work and provide test-based validation:
|
|
971
964
|
|
|
972
965
|
1. **Execute Tests**: Run all test suites from success criteria
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
966
|
+
# Parse natively (no external dependencies)
|
|
967
|
+
PASS=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= passing)' || echo "0")
|
|
968
|
+
FAIL=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= failing)' || echo "0")
|
|
969
|
+
TOTAL=$((PASS + FAIL))
|
|
970
|
+
RATE=$(awk "BEGIN {if ($TOTAL > 0) printf \"%.2f\", $PASS/$TOTAL; else print \"0.00\"}")
|
|
971
|
+
|
|
972
|
+
# Return results (Main Chat receives automatically in Task Mode)
|
|
973
|
+
echo "{\"passed\": $PASS, \"failed\": $FAIL, \"pass_rate\": $RATE}"
|
|
979
974
|
- Coverage: ≥80%
|
|
980
975
|
4. **Store in Redis**: Use test-results key (not confidence key)
|
|
981
976
|
5. **Signal Completion**: Push to completion queue
|
|
@@ -64,17 +64,13 @@ fi
|
|
|
64
64
|
# Execute tests and capture output
|
|
65
65
|
TEST_OUTPUT=$(npm test 2>&1)
|
|
66
66
|
|
|
67
|
-
# Parse
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
# Parse natively (no external dependencies)
|
|
68
|
+
PASS=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= passing)' || echo "0")
|
|
69
|
+
FAIL=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= failing)' || echo "0")
|
|
70
|
+
TOTAL=$((PASS + FAIL))
|
|
71
|
+
RATE=$(awk "BEGIN {if ($TOTAL > 0) printf \"%.2f\", $PASS/$TOTAL; else print \"0.00\"}")
|
|
70
72
|
|
|
71
73
|
# Report completion (automatically fails gracefully in Task mode)
|
|
72
|
-
./.claude/skills/cfn-redis-coordination/report-completion.sh \
|
|
73
|
-
--task-id "${TASK_ID}" \
|
|
74
|
-
--agent-id "${AGENT_ID}" \
|
|
75
|
-
--confidence "${PASS_RATE}" \
|
|
76
|
-
--iteration "${ITERATION:-1}" \
|
|
77
|
-
--result "${RESULTS}"
|
|
78
74
|
```
|
|
79
75
|
|
|
80
76
|
**Note:** Redis commands automatically fail gracefully when unavailable (Task mode). No manual mode detection needed - the centralized wrapper handles this via ANTI-023 protection.
|
|
@@ -134,8 +130,8 @@ After creating or modifying API endpoints, you MUST perform functional testing:
|
|
|
134
130
|
DO NOT report subjective confidence scores. Instead:
|
|
135
131
|
|
|
136
132
|
1. **Execute Tests**: Run test suite defined in success criteria
|
|
137
|
-
2. **Parse Results**: Use
|
|
138
|
-
3. **Store Results**:
|
|
133
|
+
2. **Parse Results**: Use native bash parsing (grep/awk) for test results
|
|
134
|
+
3. **Store Results**: Return results to Main Chat (Task Mode auto-receives output)
|
|
139
135
|
4. **Pass Rate**: Your work passes the gate if tests ≥ threshold (95% standard mode)
|
|
140
136
|
|
|
141
137
|
**Validation:**
|
|
@@ -168,12 +164,14 @@ DO NOT report subjective confidence scores. Instead:
|
|
|
168
164
|
Complete your work and provide test-based validation:
|
|
169
165
|
|
|
170
166
|
1. **Execute Tests**: Run all test suites from success criteria
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
167
|
+
# Parse natively (no external dependencies)
|
|
168
|
+
PASS=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= passing)' || echo "0")
|
|
169
|
+
FAIL=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= failing)' || echo "0")
|
|
170
|
+
TOTAL=$((PASS + FAIL))
|
|
171
|
+
RATE=$(awk "BEGIN {if ($TOTAL > 0) printf \"%.2f\", $PASS/$TOTAL; else print \"0.00\"}")
|
|
172
|
+
|
|
173
|
+
# Return results (Main Chat receives automatically in Task Mode)
|
|
174
|
+
echo "{\"passed\": $PASS, \"failed\": $FAIL, \"pass_rate\": $RATE}"
|
|
177
175
|
- Coverage: ≥80%
|
|
178
176
|
4. **Store in Redis**: Use test-results key (not confidence key)
|
|
179
177
|
5. **Signal Completion**: Push to completion queue
|
|
@@ -59,25 +59,21 @@ fi
|
|
|
59
59
|
|
|
60
60
|
**Old (Deprecated):**
|
|
61
61
|
```bash
|
|
62
|
-
redis-cli HSET "swarm:${TASK_ID}:confidence:iteration${ITERATION}" \
|
|
63
|
-
"${AGENT_ID}" "0.85"
|
|
64
|
-
```
|
|
65
62
|
|
|
66
63
|
**New (Required):**
|
|
67
64
|
```bash
|
|
68
65
|
# Execute tests and capture output
|
|
69
66
|
TEST_OUTPUT=$(npm test 2>&1)
|
|
70
67
|
|
|
71
|
-
# Parse
|
|
72
|
-
|
|
73
|
-
|
|
68
|
+
# Parse natively (no external dependencies)
|
|
69
|
+
PASS=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= passing)' || echo "0")
|
|
70
|
+
FAIL=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= failing)' || echo "0")
|
|
71
|
+
TOTAL=$((PASS + FAIL))
|
|
72
|
+
RATE=$(awk "BEGIN {if ($TOTAL > 0) printf \"%.2f\", $PASS/$TOTAL; else print \"0.00\"}")
|
|
74
73
|
|
|
75
|
-
#
|
|
76
|
-
|
|
77
|
-
"${AGENT_ID}" "$RESULTS"
|
|
74
|
+
# Return results (Main Chat receives automatically in Task Mode)
|
|
75
|
+
echo "{\"passed\": $PASS, \"failed\": $FAIL, \"pass_rate\": $RATE}"
|
|
78
76
|
|
|
79
|
-
# Signal completion
|
|
80
|
-
redis-cli LPUSH "swarm:${TASK_ID}:completion:${AGENT_ID}" "done"
|
|
81
77
|
```
|
|
82
78
|
|
|
83
79
|
# Data Engineer Agent
|
|
@@ -640,12 +636,14 @@ Validate work with tests instead of confidence scores:
|
|
|
640
636
|
- Idempotency tests
|
|
641
637
|
- Performance tests with realistic volumes
|
|
642
638
|
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
639
|
+
# Parse natively (no external dependencies)
|
|
640
|
+
PASS=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= passing)' || echo "0")
|
|
641
|
+
FAIL=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= failing)' || echo "0")
|
|
642
|
+
TOTAL=$((PASS + FAIL))
|
|
643
|
+
RATE=$(awk "BEGIN {if ($TOTAL > 0) printf \"%.2f\", $PASS/$TOTAL; else print \"0.00\"}")
|
|
644
|
+
|
|
645
|
+
# Return results (Main Chat receives automatically in Task Mode)
|
|
646
|
+
echo "{\"passed\": $PASS, \"failed\": $FAIL, \"pass_rate\": $RATE}"
|
|
649
647
|
- Coverage: ≥80%
|
|
650
648
|
4. **Store in Redis**: Use test-results key (not confidence key)
|
|
651
649
|
5. **Signal Completion**: Push to completion queue
|
|
@@ -80,16 +80,15 @@ Execute tests and report objective pass/fail metrics:
|
|
|
80
80
|
# Execute tests and capture output
|
|
81
81
|
TEST_OUTPUT=$(npm test 2>&1)
|
|
82
82
|
|
|
83
|
-
# Parse
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
# Parse natively (no external dependencies)
|
|
84
|
+
PASS=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= passing)' || echo "0")
|
|
85
|
+
FAIL=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= failing)' || echo "0")
|
|
86
|
+
TOTAL=$((PASS + FAIL))
|
|
87
|
+
RATE=$(awk "BEGIN {if ($TOTAL > 0) printf \"%.2f\", $PASS/$TOTAL; else print \"0.00\"}")
|
|
86
88
|
|
|
87
|
-
#
|
|
88
|
-
|
|
89
|
-
"${AGENT_ID}" "$RESULTS"
|
|
89
|
+
# Return results (Main Chat receives automatically in Task Mode)
|
|
90
|
+
echo "{\"passed\": $PASS, \"failed\": $FAIL, \"pass_rate\": $RATE}"
|
|
90
91
|
|
|
91
|
-
# Signal completion
|
|
92
|
-
redis-cli LPUSH "swarm:${TASK_ID}:completion:${AGENT_ID}" "done"
|
|
93
92
|
```
|
|
94
93
|
|
|
95
94
|
# Database Architect Agent
|
|
@@ -345,12 +344,14 @@ Validate work with tests instead of confidence scores:
|
|
|
345
344
|
- Index effectiveness tests
|
|
346
345
|
- Rollback procedure tests
|
|
347
346
|
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
347
|
+
# Parse natively (no external dependencies)
|
|
348
|
+
PASS=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= passing)' || echo "0")
|
|
349
|
+
FAIL=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= failing)' || echo "0")
|
|
350
|
+
TOTAL=$((PASS + FAIL))
|
|
351
|
+
RATE=$(awk "BEGIN {if ($TOTAL > 0) printf \"%.2f\", $PASS/$TOTAL; else print \"0.00\"}")
|
|
352
|
+
|
|
353
|
+
# Return results (Main Chat receives automatically in Task Mode)
|
|
354
|
+
echo "{\"passed\": $PASS, \"failed\": $FAIL, \"pass_rate\": $RATE}"
|
|
354
355
|
- Coverage: ≥80%
|
|
355
356
|
4. **Store in Redis**: Use test-results key (not confidence key)
|
|
356
357
|
5. **Signal Completion**: Push to completion queue
|
|
@@ -73,25 +73,21 @@ fi
|
|
|
73
73
|
|
|
74
74
|
**Old (Deprecated):**
|
|
75
75
|
```bash
|
|
76
|
-
redis-cli HSET "swarm:${TASK_ID}:confidence:iteration${ITERATION}" \
|
|
77
|
-
"${AGENT_ID}" "0.85"
|
|
78
|
-
```
|
|
79
76
|
|
|
80
77
|
**New (Required):**
|
|
81
78
|
```bash
|
|
82
79
|
# Execute tests and capture output
|
|
83
80
|
TEST_OUTPUT=$(npm test 2>&1)
|
|
84
81
|
|
|
85
|
-
# Parse
|
|
86
|
-
|
|
87
|
-
|
|
82
|
+
# Parse natively (no external dependencies)
|
|
83
|
+
PASS=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= passing)' || echo "0")
|
|
84
|
+
FAIL=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= failing)' || echo "0")
|
|
85
|
+
TOTAL=$((PASS + FAIL))
|
|
86
|
+
RATE=$(awk "BEGIN {if ($TOTAL > 0) printf \"%.2f\", $PASS/$TOTAL; else print \"0.00\"}")
|
|
88
87
|
|
|
89
|
-
#
|
|
90
|
-
|
|
91
|
-
"${AGENT_ID}" "$RESULTS"
|
|
88
|
+
# Return results (Main Chat receives automatically in Task Mode)
|
|
89
|
+
echo "{\"passed\": $PASS, \"failed\": $FAIL, \"pass_rate\": $RATE}"
|
|
92
90
|
|
|
93
|
-
# Signal completion
|
|
94
|
-
redis-cli LPUSH "swarm:${TASK_ID}:completion:${AGENT_ID}" "done"
|
|
95
91
|
```
|
|
96
92
|
|
|
97
93
|
# React Native Mobile Development Specialist
|
|
@@ -218,12 +214,14 @@ Remember: Mobile development requires constant testing on actual devices and con
|
|
|
218
214
|
Complete your work and provide test-based validation:
|
|
219
215
|
|
|
220
216
|
1. **Execute Tests**: Run all test suites from success criteria
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
217
|
+
# Parse natively (no external dependencies)
|
|
218
|
+
PASS=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= passing)' || echo "0")
|
|
219
|
+
FAIL=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= failing)' || echo "0")
|
|
220
|
+
TOTAL=$((PASS + FAIL))
|
|
221
|
+
RATE=$(awk "BEGIN {if ($TOTAL > 0) printf \"%.2f\", $PASS/$TOTAL; else print \"0.00\"}")
|
|
222
|
+
|
|
223
|
+
# Return results (Main Chat receives automatically in Task Mode)
|
|
224
|
+
echo "{\"passed\": $PASS, \"failed\": $FAIL, \"pass_rate\": $RATE}"
|
|
227
225
|
- Coverage: ≥80%
|
|
228
226
|
4. **Store in Redis**: Use test-results key (not confidence key)
|
|
229
227
|
5. **Signal Completion**: Push to completion queue
|
|
@@ -49,25 +49,21 @@ fi
|
|
|
49
49
|
|
|
50
50
|
**Old (Deprecated):**
|
|
51
51
|
```bash
|
|
52
|
-
redis-cli HSET "swarm:${TASK_ID}:confidence:iteration${ITERATION}" \
|
|
53
|
-
"${AGENT_ID}" "0.85"
|
|
54
|
-
```
|
|
55
52
|
|
|
56
53
|
**New (Required):**
|
|
57
54
|
```bash
|
|
58
55
|
# Execute tests and capture output
|
|
59
56
|
TEST_OUTPUT=$(npm test 2>&1)
|
|
60
57
|
|
|
61
|
-
# Parse
|
|
62
|
-
|
|
63
|
-
|
|
58
|
+
# Parse natively (no external dependencies)
|
|
59
|
+
PASS=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= passing)' || echo "0")
|
|
60
|
+
FAIL=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= failing)' || echo "0")
|
|
61
|
+
TOTAL=$((PASS + FAIL))
|
|
62
|
+
RATE=$(awk "BEGIN {if ($TOTAL > 0) printf \"%.2f\", $PASS/$TOTAL; else print \"0.00\"}")
|
|
64
63
|
|
|
65
|
-
#
|
|
66
|
-
|
|
67
|
-
"${AGENT_ID}" "$RESULTS"
|
|
64
|
+
# Return results (Main Chat receives automatically in Task Mode)
|
|
65
|
+
echo "{\"passed\": $PASS, \"failed\": $FAIL, \"pass_rate\": $RATE}"
|
|
68
66
|
|
|
69
|
-
# Signal completion
|
|
70
|
-
redis-cli LPUSH "swarm:${TASK_ID}:completion:${AGENT_ID}" "done"
|
|
71
67
|
```
|
|
72
68
|
|
|
73
69
|
# React Frontend Engineer Agent Profile
|
|
@@ -225,12 +221,14 @@ redis-cli LPUSH "swarm:${TASK_ID}:completion:${AGENT_ID}" "done"
|
|
|
225
221
|
Complete your work and provide test-based validation:
|
|
226
222
|
|
|
227
223
|
1. **Execute Tests**: Run all test suites from success criteria
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
224
|
+
# Parse natively (no external dependencies)
|
|
225
|
+
PASS=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= passing)' || echo "0")
|
|
226
|
+
FAIL=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= failing)' || echo "0")
|
|
227
|
+
TOTAL=$((PASS + FAIL))
|
|
228
|
+
RATE=$(awk "BEGIN {if ($TOTAL > 0) printf \"%.2f\", $PASS/$TOTAL; else print \"0.00\"}")
|
|
229
|
+
|
|
230
|
+
# Return results (Main Chat receives automatically in Task Mode)
|
|
231
|
+
echo "{\"passed\": $PASS, \"failed\": $FAIL, \"pass_rate\": $RATE}"
|
|
234
232
|
- Coverage: ≥80%
|
|
235
233
|
4. **Store in Redis**: Use test-results key (not confidence key)
|
|
236
234
|
5. **Signal Completion**: Push to completion queue
|