Agent skill · cursor
debug-voice
Use when the user runs /debug-voice, says voice mode has flaws, asks to see or capture what happened in a Grok realtime voice session, or a voice integration has no debug logging yet. Proposes a plan, then installs a dev-only log pipeline (client logger → local NDJSON) in the app's own language and conventions, then runs the fix loop: match the user's report to log signatures, fix one thing, re-test.
What it needs
About 8k tokens when loaded.
What this skill does
Debug Voice Make a voice session readable after the fact, then fix from evidence. The agent cannot hear the app; the log is its ears, the user is its judge. No audio, no tokens, never in prod. Works for any stack. The pipeline is a small contract (below); implement it in whatever the app already uses. Workflow 1. Map the app (read only). 2. Plan: write the change list, show it, stop. Nothing is edited until the user aligns. 3. Install the agreed pieces in the app's language, framework, and conventions. 4. Verify the sink, hand the app to the user. 5. Fix loop from the log. 1. Map Find, and note the paths: Voice client: where realtime events are received and sent, mic capture, audio playback, token fetch. Server: framework, how routes are declared, where shared server code lives, how env is read, what "production" means here. Conventions: language(s), module system, formatter, where scripts or tasks live (package.json, Makefile, pyproject, justfile), .gitignore. Client kind: browser, mobile, desktop, CLI. A non-browser client still POSTs the same JSON; a single-process app can skip HTTP and append to the file directly. Where audio deltas are handled. They must be counted, never logged. 2. Plan, then stop Fill this in with real paths and the app's language, post it, and wait for a yes or a trimmed list. Do not edit files before that. 3. Install: the contract Match the app. Same language as the surrounding code, same route style, same formatter. Write the pieces from the contract below; do not introduce a second language or toolchain for logging. Session id: 8 lowercase hex chars from a UUID. The sink accepts ^[a-z0-9]{4,64}$; it becomes a file name. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills cursor/debug-voice