[
 {
  "id": "T01",
  "target": "bestpractice_pdf_to_markdown",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "The crash is caused by Docling’s RT-DETR V2 model calling `torch.float64` during layout detection, which the MPS backend on Apple Silicon does not support.  \n\nTo work around it, pass the `--device cpu` flag (and optionally `--no-ocr` for text-only PDFs):\n\n```bash\ndocling input.pdf --to md --device cpu --no-ocr --output output_dir\n```",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 2359,
  "completion_tokens": 84,
  "sec": 2.5496127605438232,
  "cost": 0.00315875,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T02",
  "target": "mac_universal_clipboard",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "Yes. The skill document lists a specific Keychain item you can delete:\n\n**Item name:** `handoff-own-encryption-key`\n\n**Steps to reset the Mac’s local Handoff identity key:**\n\n1. Open **Keychain Access** (in `/Applications/Utilities/` or Spotlight).\n2. In the search field, type `handoff-own-encryption-key`.\n3. Select the matching item (it should be under the **login** keychain).\n4. Press **Delete** (or right-click → Delete).\n5. Restart the Mac (or at minimum restart the Continuity daemons with the fast-fix command below).\n\nAfter the restart, test Universal Clipboard again. If it still fails, the document recommends iCloud sign-out as the final step.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 1121,
  "completion_tokens": 151,
  "sec": 4.401581048965454,
  "cost": 0.00177875,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T03",
  "target": "openreview",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "Delete the cached token file `tmp/openreview_token.json` and then retry your query.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 1635,
  "completion_tokens": 18,
  "sec": 3.730926990509033,
  "cost": 0.00208875,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T04",
  "target": "workflow_bilibili_whisper_transcription",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "According to the workflow document, maintain a **2–3 second interval** between successive single-threaded downloads.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 1686,
  "completion_tokens": 22,
  "sec": 3.7690188884735107,
  "cost": 0.0021625,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T05",
  "target": "playwright_ajax_capture",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "Use the **POST-then-GET** pattern:\n\n1. After the POST that returns only `creation_uuid`, immediately call the list (or search) endpoint that returns the full resource list.\n2. In the returned list, locate the newly created item by matching a unique field you control (e.g., the exact title/body you just posted, or a client-generated `client_request_id` you included in the POST body).\n3. Extract the real numeric (or UUID) `id` from that matched record.\n\nNever rely on the POST response’s `creation_uuid` as the resource ID; the server may generate the canonical ID asynchronously after the initial 202/201 response.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 4186,
  "completion_tokens": 136,
  "sec": 5.105275869369507,
  "cost": 0.0055725,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T06",
  "target": "workflow_watchdog",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "The recommended default wake-up interval is **30 minutes (1800 seconds)**. Use `ScheduleWakeup` (or the equivalent timing mechanism in your harness) to set this inspection after dispatching the tasks.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 590,
  "completion_tokens": 41,
  "sec": 4.35097599029541,
  "cost": 0.00084,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T07",
  "target": "workflow_parallel_subagents",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "According to the skill document, you shouldn't default to setting temperature to 0 on subagents because:\n\n> \"Many providers/models have their own sampling strategies; DS4 also does deterministic handling for protocol structures, but forcing determinism on long text payloads may cause repetition.\"\n\nThe document explicitly states: \"Default to not setting temperature; let the provider/server use their own defaults. Only configure when you explicitly know a specific model needs fixed sampling.\"",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 3789,
  "completion_tokens": 86,
  "sec": 4.3509321212768555,
  "cost": 0.00495125,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T08",
  "target": "bestpractice_markdown_html_conversion",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "According to the skill document, the recommended minimum padding for the body or main container is **24px or more** to prevent text from hugging the screen edge on mobile devices.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 849,
  "completion_tokens": 35,
  "sec": 3.7854180335998535,
  "cost": 0.0011487499999999998,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T09",
  "target": "codex_cli",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "To disable the `web_search` tool on your OpenAI-compatible backend, add the following bare key at the top level of your Codex configuration file (before any `[section]` headers):\n\n```toml\nweb_search = \"disabled\"\n```\n\nThe value **must be the string `\"disabled\"`**; boolean values (`true`/`false`) and other strings (`\"on\"`, `\"off\"`, `\"enabled\"`) are rejected by the 0.156.1 parser.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 2083,
  "completion_tokens": 96,
  "sec": 4.350664854049683,
  "cost": 0.0028437500000000004,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T10",
  "target": "apple_photos",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "**50 pairs** per delete manifest.\n\nThe skill document states: \"Limit each delete manifest to 50 pairs. Split larger evidence sets into independent plans and require fresh review and authorization for each; never reuse a token or retry an uncertain batch.\"",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 2131,
  "completion_tokens": 49,
  "sec": 4.350147008895874,
  "cost": 0.0027862499999999997,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T11",
  "target": "colab",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "According to the skill document, when you pass an unrecognized `--gpu` value to the Colab CLI version 0.7.4, the CLI **does not abort with an invalid argument error**. Instead, it **turns the accelerator 400 into one message** and **does not read the response body**. The unrecognized value is **sent as A100**, not rejected.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 5293,
  "completion_tokens": 74,
  "sec": 3.902042865753174,
  "cost": 0.00680125,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T12",
  "target": "dataforseo",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "The 40104 error occurs because your DataForSEO account is authenticated but **not yet verified**. The skill documentation explicitly states:\n\n> DataForSEO may return `40104` when the account is authenticated but not verified. In that case, account/balance can still work, but keyword data endpoints, including sandbox, may be blocked until the user completes verification in the DataForSEO panel.\n\n**Fix:** Log into your DataForSEO dashboard (https://app.dataforseo.com) and complete the account verification process. Once verified, the keyword endpoints (including sandbox) will become available.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 1019,
  "completion_tokens": 119,
  "sec": 2.9827141761779785,
  "cost": 0.00157125,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T13",
  "target": "firewalla",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "You need to add the `--execute` flag to your `firewalla-skill` commands.\n\n**Why it's needed:**  \nBy default, the CLI runs in **dry-run mode** (no live queries). The `--execute` flag tells the tool to actually connect to your Firewalla device and collect real data. Without it, the commands only simulate or skip the live collection step.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 1243,
  "completion_tokens": 79,
  "sec": 2.9464659690856934,
  "cost": 0.00175125,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T14",
  "target": "apple_calendar",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "Copy the file from this exact path:\n\n```\n~/Library/Group Containers/group.com.apple.calendar/Calendar.sqlitedb\n```\n\n…and also copy its two side-car files if they exist:\n\n```\n~/Library/Group Containers/group.com.apple.calendar/Calendar.sqlitedb-wal\n~/Library/Group Containers/group.com.apple.calendar/Calendar.sqlitedb-shm\n```\n\nWhy the file under `~/Library/Calendars/Calendar.sqlitedb` is empty  \nmacOS keeps a 0-byte decoy file at that location (documented as “P2”). The real EventKit store lives in the group-container directory above; the decoy is never written to, so any copy you make from it will always return zero rows.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 2463,
  "completion_tokens": 144,
  "sec": 3.4266469478607178,
  "cost": 0.00343875,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T15",
  "target": "skill_image_generation",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "When generating infographics with GPT Image 2.5, first create a matplotlib structure draft (or similar layout) and pass that image as the `-i` input to the model. Then use a prompt that tells the model to improve the visual presentation while preserving the existing title, annotations, and layout.\n\nThis workflow is required because GPT Image 2.5 is a repaint-only model, not a fresh-generation model. Prompting it from text alone produces unreliable results for structured infographics; the model needs the draft image to understand the intended layout and text elements.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 2045,
  "completion_tokens": 113,
  "sec": 5.196294784545898,
  "cost": 0.00283875,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T16",
  "target": "skill_intake",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "The sync step reads **only `.qta` and `.m4a` files**. Any other extension (including `.wav`, `.mp3`, `.aac`, etc.) is ignored.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 3838,
  "completion_tokens": 38,
  "sec": 4.9013190269470215,
  "cost": 0.004892499999999999,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T17",
  "target": "watch_development",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "To make the Developer Mode toggle appear on your Apple Watch:\n\n1. Pair the watch with your Mac at least once using **Device Hub**:\n   - Open Xcode → **Open Developer Tool → Device Hub**.\n   - Click **\"+\" → \"Pair Nearby Device\"** and follow the on-screen pairing code.\n\n2. Restart the Apple Watch after the initial pairing.\n\n3. After the reboot, open **Settings > Privacy & Security** on the watch. The Developer Mode toggle should now be visible.\n\n4. Toggle Developer Mode on, then restart the watch again when prompted.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 2867,
  "completion_tokens": 115,
  "sec": 6.359580039978027,
  "cost": 0.00387125,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T18",
  "target": "koyeb",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "You should not rely on the standard CLI’s `metrics get` command because it **maps raw null request counts to 0**, which makes it impossible to distinguish between “no traffic” and “missing data.”  \n\nUse the dedicated lossless reader instead:\n\n```bash\npython3 scripts/request_metrics.py \\\n  --service-id <service-id> \\\n  --start <RFC3339-start> \\\n  --end <RFC3339-end> \\\n  --step 1h\n```\n\nThis script preserves the distinction between `null` and `0`, allowing you to correctly classify periods of true inactivity for safe scale-to-zero decisions.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 2681,
  "completion_tokens": 126,
  "sec": 5.200323104858398,
  "cost": 0.0036662500000000002,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T19",
  "target": "narwal",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "Use the battery trend across multiple snapshots or a bounded `watch` window.\n\n**Steps:**\n\n1. Run two snapshots a few minutes apart (or a short `watch`):\n   ```bash\n   narwal-local snapshot\n   # wait ~2–3 minutes\n   narwal-local snapshot\n   ```\n   or\n   ```bash\n   narwal-local watch --duration 120\n   ```\n\n2. Compare `battery_percent` values:\n   - **Rising** → the robot is docked and charging.\n   - **Steady or falling** → it is not charging (or the dock is not supplying power).\n\n3. Ignore the literal `is_docked` and `charging_state` fields—they are always `null` by design. The battery trend is the authoritative indicator.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 4338,
  "completion_tokens": 158,
  "sec": 5.146094083786011,
  "cost": 0.005817500000000001,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T20",
  "target": "skill_opencode_data",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "Subagent fan-out sessions are skipped by default during export. To include them, add the `--include-subagent` flag when running the export command:\n\n```bash\n.venv/bin/python -m opencode_skill export --out OUTPUT_DIR --include-subagent\n```\n\nYou can combine it with other options such as `--since 30d` or `--json` as needed.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 1545,
  "completion_tokens": 75,
  "sec": 4.243838787078857,
  "cost": 0.00211875,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T21",
  "target": "speaker_notes",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "22 words.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 3144,
  "completion_tokens": 3,
  "sec": 3.0654027462005615,
  "cost": 0.0039375,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T22",
  "target": "skill_semantic_search",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "Use the `--source-root` option to define the base directory for resolving relative paths in your file list.\n\nIf `--source-root` is omitted, the CLI resolves relative entries against its current working directory.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 1886,
  "completion_tokens": 40,
  "sec": 4.57134485244751,
  "cost": 0.0024574999999999996,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T23",
  "target": "smart_home_skill",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "**No, you cannot retrieve volume level or mute status** through the smart home integration.\n\nAccording to the skill documentation:\n\n> \"Volume and mute state are not readable (protocol limitation); `get_status` returns `PowerState` only.\"\n\nThe Samsung TV control uses the local Tizen WebSocket API, and this protocol limitation means the `get_status` endpoint (or any status endpoint) will only return the power state, not volume or mute information.\n\nIf you need to inspect volume/mute, you would need to use a different integration or method outside of this smart home service.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 1213,
  "completion_tokens": 117,
  "sec": 4.5823609828948975,
  "cost": 0.00180875,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T24",
  "target": "skill_unifi",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "Exit code **10** indicates an authentication failure caused by an expired cookie.  \nResolution: the human must refresh the session cookie (see `docs/cookie_refresh.md` in the repo).",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 1123,
  "completion_tokens": 38,
  "sec": 3.583416223526001,
  "cost": 0.00149875,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T25",
  "target": "asr",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "The maximum duration allowed for a single audio file is **7200 seconds** (2 hours). Any file longer than this will be rejected before a model loads.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 2187,
  "completion_tokens": 32,
  "sec": 3.8460259437561035,
  "cost": 0.0028137500000000003,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T26",
  "target": "skill_outlook",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "The default timezone used when no `--timezone` argument is provided is **UTC**.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 3609,
  "completion_tokens": 16,
  "sec": 2.032855749130249,
  "cost": 0.00455125,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T27",
  "target": "skill_resend_email",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "The `--after` flag does **not** accept ISO timestamps like `2023-10-01T00:00:00Z`. According to the skill document, `--after` and `--before` are **Resend pagination cursors**, not timestamp filters. The API expects a UUID cursor value (from a previous response), and passing a timestamp causes a validation error.\n\nTo analyze a time window (e.g., \"last three days\"), the correct workflow is:\n\n1. First run `doctor config` to verify setup.\n2. Export recent messages with `received export-all-md --limit 100` (or similar).\n3. Filter the exported Markdown files locally by the `created_at` frontmatter field.\n\nDo not pass ISO timestamps to `--after` or `--before`.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 2194,
  "completion_tokens": 157,
  "sec": 3.5825400352478027,
  "cost": 0.003135,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T28",
  "target": "skill_firecrawl",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "The Firecrawl skill explicitly states that `--include-domain` and `--exclude-domain` are mutually exclusive and cannot be combined.  \n\nTo achieve both “only certain sites” and “exclude another specific site” in one search, use the `-site:` operator inside the query text itself (the skill documentation recommends this exact workaround).  \n\nExample:\n\n```bash\npython -m firecrawl_skill search \\\n  \"agent framework -site:github.com\" \\\n  --include-domain docs.anthropic.com \\\n  --include-domain docs.openai.com\n```\n\n- `--include-domain` keeps the search limited to the listed domains.  \n- `-site:github.com` (inside the query string) excludes any results from GitHub.  \n\nThis is the only supported way to combine inclusion and exclusion in a single Firecrawl search.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 6370,
  "completion_tokens": 166,
  "sec": 6.309999227523804,
  "cost": 0.008377500000000001,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T29",
  "target": "video-scoring-audio",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "You should avoid letting ffmpeg downmix stereo audio to mono with `-ac 1` before measuring the peak level because, for correlated stereo (a mono mix written to both channels, the usual case for a voice-over), it sums the channels at about +3 dB. This means a mix with a true peak of -1.5 dBFS measured 1.19 and was reported as clipping.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 5296,
  "completion_tokens": 82,
  "sec": 5.577447891235352,
  "cost": 0.006825,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 },
 {
  "id": "T30",
  "target": "skill_playwright_test",
  "model": "grok-4-fast",
  "condition": "full_1",
  "answer": "The infinite loop is caused by **stale session tokens** stored in the CDP Chrome user-data-dir profile.\n\n**Root cause:** The SSO SDK detects an old/invalid token from a previous session, attempts to use it, receives a 401, refreshes the token, receives another 401, and repeats indefinitely.\n\n**Fix:** Always start with a fresh user-data-dir before launching Chrome:\n\n```bash\nrm -rf /tmp/pw_debug_profile\n```\n\nThen start Chrome with a clean profile:\n\n```bash\ngoogle-chrome --remote-debugging-port=9222 --user-data-dir=/tmp/pw_debug_profile\n```\n\nIn automated tests, use `browser.new_context()` instead of reusing a persistent context to avoid inheriting stale sessions.",
  "error": null,
  "n_skills": 1,
  "target_pos": 0,
  "prompt_tokens": 2360,
  "completion_tokens": 150,
  "sec": 5.97147011756897,
  "cost": 0.003325,
  "web_tools": [],
  "n_calls": 1,
  "finish_reason": "stop",
  "nudged": false
 }
]