|
| 1 | +{ |
| 2 | + "skill_name": "k6-builder", |
| 3 | + "evals": [ |
| 4 | + { |
| 5 | + "id": 4, |
| 6 | + "prompt": "Create a runnable k6 browser script for checkout flow in https://shop.example.com (login -> search -> add to cart -> checkout). SLA: checkout completion p95<4s.", |
| 7 | + "expected_output": "browser-checkout-runnable", |
| 8 | + "files": [], |
| 9 | + "assertions": [ |
| 10 | + { |
| 11 | + "name": "browser_module", |
| 12 | + "text": "Must use k6 browser capabilities (browser/page APIs)" |
| 13 | + }, |
| 14 | + { |
| 15 | + "name": "flow_steps", |
| 16 | + "text": "Must model the requested multi-step browser flow" |
| 17 | + }, |
| 18 | + { |
| 19 | + "name": "checkout_sla", |
| 20 | + "text": "Must include a threshold aligned with checkout p95<4s" |
| 21 | + }, |
| 22 | + { |
| 23 | + "name": "runnable_artifact", |
| 24 | + "text": "Must produce runnable script artifact and execution hints" |
| 25 | + } |
| 26 | + ] |
| 27 | + }, |
| 28 | + { |
| 29 | + "id": 0, |
| 30 | + "prompt": "I need a runnable k6 script for https://api.example.com with load scenario and SLA p95<300ms,error<1%.", |
| 31 | + "expected_output": "load-test-basic", |
| 32 | + "files": [], |
| 33 | + "assertions": [ |
| 34 | + { |
| 35 | + "name": "runnable_artifact", |
| 36 | + "text": "Must deliver a runnable k6 artifact, not just a conceptual explanation" |
| 37 | + }, |
| 38 | + { |
| 39 | + "name": "load_executor", |
| 40 | + "text": "Must recommend a coherent executor for load test, preferably ramping-vus" |
| 41 | + }, |
| 42 | + { |
| 43 | + "name": "sla_thresholds", |
| 44 | + "text": "Must include thresholds derived from the SLA: p95<300ms and error<1%" |
| 45 | + }, |
| 46 | + { |
| 47 | + "name": "named_default_function", |
| 48 | + "text": "The generated artifact must have a named default function, not an anonymous export default function ()" |
| 49 | + }, |
| 50 | + { |
| 51 | + "name": "env_var_explicit", |
| 52 | + "text": "Must include an explicit required environment variables block with __ENV" |
| 53 | + } |
| 54 | + ] |
| 55 | + }, |
| 56 | + { |
| 57 | + "id": 1, |
| 58 | + "prompt": "Generate dev, staging, and prod configuration for a stress test with SLA p99<1s and no hard-coded secrets.", |
| 59 | + "expected_output": "multi-env-stress-config", |
| 60 | + "files": [], |
| 61 | + "assertions": [ |
| 62 | + { |
| 63 | + "name": "multi_env_config", |
| 64 | + "text": "Must generate configuration for dev, staging, and prod with explicit differences per environment" |
| 65 | + }, |
| 66 | + { |
| 67 | + "name": "safe_placeholders", |
| 68 | + "text": "Must not hard-code secrets and must use placeholders or __ENV for sensitive configuration" |
| 69 | + }, |
| 70 | + { |
| 71 | + "name": "explicit_per_env_vus", |
| 72 | + "text": "Must show distinct and explicit VU counts for dev, staging, and prod" |
| 73 | + }, |
| 74 | + { |
| 75 | + "name": "env_placeholders_present", |
| 76 | + "text": "Must use __ENV or .env.example for all URLs and environment-sensitive configuration" |
| 77 | + }, |
| 78 | + { |
| 79 | + "name": "sla_threshold_all_envs", |
| 80 | + "text": "The SLA threshold p99<1s must appear in the configuration of all environments" |
| 81 | + } |
| 82 | + ] |
| 83 | + }, |
| 84 | + { |
| 85 | + "id": 5, |
| 86 | + "prompt": "Generate a runnable k6 test for transaction chain: authenticate -> create order -> pay order -> verify order status. API base URL via env var. SLA: end-to-end transaction p95<900ms.", |
| 87 | + "expected_output": "multi-step-transaction-runnable", |
| 88 | + "files": [], |
| 89 | + "assertions": [ |
| 90 | + { |
| 91 | + "name": "multi_step_chain", |
| 92 | + "text": "Must model the full multi-step transaction sequence" |
| 93 | + }, |
| 94 | + { |
| 95 | + "name": "correlation_handling", |
| 96 | + "text": "Must handle data correlation between steps (token/orderId)" |
| 97 | + }, |
| 98 | + { |
| 99 | + "name": "e2e_threshold", |
| 100 | + "text": "Must include threshold aligned to end-to-end SLA" |
| 101 | + }, |
| 102 | + { |
| 103 | + "name": "env_usage", |
| 104 | + "text": "Must use __ENV for base URL or credentials" |
| 105 | + } |
| 106 | + ] |
| 107 | + }, |
| 108 | + { |
| 109 | + "id": 2, |
| 110 | + "prompt": "I have a smoke test plan and want the final runnable artifact plus a recommendation to validate at the end.", |
| 111 | + "expected_output": "smoke-artifact", |
| 112 | + "files": [], |
| 113 | + "assertions": [ |
| 114 | + { |
| 115 | + "name": "smoke_artifact", |
| 116 | + "text": "Must deliver a minimal runnable artifact for smoke test" |
| 117 | + }, |
| 118 | + { |
| 119 | + "name": "smoke_executor", |
| 120 | + "text": "Must use a configuration coherent with smoke test, preferably constant-vus" |
| 121 | + }, |
| 122 | + { |
| 123 | + "name": "validate_handoff", |
| 124 | + "text": "Must recommend k6-validate as the next step" |
| 125 | + }, |
| 126 | + { |
| 127 | + "name": "named_default_function", |
| 128 | + "text": "The generated smoke artifact must have a named default function" |
| 129 | + } |
| 130 | + ] |
| 131 | + }, |
| 132 | + { |
| 133 | + "id": 3, |
| 134 | + "prompt": "Build a runnable k6 script to load test my WebSocket chat backend at wss://chat.example.com/socket. Need 200 concurrent users and SLA message latency p95<150ms, error<1%.", |
| 135 | + "expected_output": "websocket-chat-runnable", |
| 136 | + "files": [], |
| 137 | + "assertions": [ |
| 138 | + { |
| 139 | + "name": "ws_protocol_usage", |
| 140 | + "text": "Must use WebSocket protocol primitives (ws.connect or equivalent)" |
| 141 | + }, |
| 142 | + { |
| 143 | + "name": "ws_latency_threshold", |
| 144 | + "text": "Must include thresholds for WebSocket latency/SLA" |
| 145 | + }, |
| 146 | + { |
| 147 | + "name": "concurrency_model", |
| 148 | + "text": "Must configure a coherent concurrency model for 200 users" |
| 149 | + }, |
| 150 | + { |
| 151 | + "name": "runnable_artifact", |
| 152 | + "text": "Must deliver runnable artifact code with imports/options/default flow" |
| 153 | + } |
| 154 | + ] |
| 155 | + }, |
| 156 | + { |
| 157 | + "id": 6, |
| 158 | + "prompt": "Build a runnable k6 gRPC stress script for OrderService/CreateOrder at grpc://perf-orders.internal:8443. Keep auth token in env vars only. SLA: p99<250ms and error<1%.", |
| 159 | + "assertions": [ |
| 160 | + { |
| 161 | + "name": "grpc_runnable_artifact", |
| 162 | + "text": "Must provide runnable gRPC artifact with options and executable flow" |
| 163 | + }, |
| 164 | + { |
| 165 | + "name": "grpc_metric_threshold", |
| 166 | + "text": "Must include grpc_req_duration threshold aligned with p99<250ms" |
| 167 | + }, |
| 168 | + { |
| 169 | + "name": "secure_env_usage", |
| 170 | + "text": "Must use __ENV for endpoint/auth and avoid hard-coded secrets" |
| 171 | + }, |
| 172 | + { |
| 173 | + "name": "named_default_function", |
| 174 | + "text": "Must use a named export default function" |
| 175 | + } |
| 176 | + ], |
| 177 | + "files": [], |
| 178 | + "expected_output": "grpc-stress-runnable" |
| 179 | + }, |
| 180 | + { |
| 181 | + "id": 7, |
| 182 | + "prompt": "Create a runnable k6 browser smoke script for https://shop.example.net login and product page render. Keep it minimal (5 VUs, 1m) with SLA p95<2s.", |
| 183 | + "assertions": [ |
| 184 | + { |
| 185 | + "name": "browser_module_usage", |
| 186 | + "text": "Must use k6 browser APIs for the flow" |
| 187 | + }, |
| 188 | + { |
| 189 | + "name": "smoke_profile", |
| 190 | + "text": "Must align with smoke/minimal profile" |
| 191 | + }, |
| 192 | + { |
| 193 | + "name": "sla_in_thresholds", |
| 194 | + "text": "Must include threshold aligned with p95<2s" |
| 195 | + }, |
| 196 | + { |
| 197 | + "name": "validate_handoff", |
| 198 | + "text": "Must include a next step recommending validation" |
| 199 | + } |
| 200 | + ], |
| 201 | + "files": [], |
| 202 | + "expected_output": "browser-smoke-runnable" |
| 203 | + } |
| 204 | + ] |
| 205 | +} |
0 commit comments