Go Testing
cxuu/golang-skills
A skill your agent uses when writing, reviewing, or improving Go test code — including table-driven tests, subtests, parallel tests, test helpers, test doubles, and assertions with cmp.Diff.
Creates and maintains the scenarios a LiveKit agent simulation runs, and wires the agent to consume them.
$ npx skills add livekit-examples/agent-starter-python --skill writing-livekit-scenarios -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install livekit-examples/agent-starter-python writing-livekit-scenarios --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/livekit-examples/agent-starter-python.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/writing-livekit-scenarios .claude/skills/writing-livekit-scenarios && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "writing-livekit-scenarios" agent skill from https://github.com/livekit-examples/agent-starter-python/tree/main/.agents/skills/writing-livekit-scenarios into .claude/skills/writing-livekit-scenarios/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "writing-livekit-scenarios", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/livekit-examples/agent-starter-python/tree/main/.agents/skills/writing-livekit-scenariosType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add livekit-examples/agent-starter-python --skill writing-livekit-scenarios -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install livekit-examples/agent-starter-python writing-livekit-scenarios --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/livekit-examples/agent-starter-python.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/writing-livekit-scenarios .agents/skills/writing-livekit-scenarios && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "writing-livekit-scenarios" agent skill from https://github.com/livekit-examples/agent-starter-python/tree/main/.agents/skills/writing-livekit-scenarios into .agents/skills/writing-livekit-scenarios/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "writing-livekit-scenarios", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add livekit-examples/agent-starter-python --skill writing-livekit-scenarios -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install livekit-examples/agent-starter-python writing-livekit-scenarios --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/livekit-examples/agent-starter-python.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/writing-livekit-scenarios .cursor/skills/writing-livekit-scenarios && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "writing-livekit-scenarios" agent skill from https://github.com/livekit-examples/agent-starter-python/tree/main/.agents/skills/writing-livekit-scenarios into .cursor/skills/writing-livekit-scenarios/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "writing-livekit-scenarios", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/livekit-examples/agent-starter-python.git --path .agents/skills/writing-livekit-scenarios--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add livekit-examples/agent-starter-python --skill writing-livekit-scenarios -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install livekit-examples/agent-starter-python writing-livekit-scenarios --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/livekit-examples/agent-starter-python.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/writing-livekit-scenarios .gemini/skills/writing-livekit-scenarios && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "writing-livekit-scenarios" agent skill from https://github.com/livekit-examples/agent-starter-python/tree/main/.agents/skills/writing-livekit-scenarios into .gemini/skills/writing-livekit-scenarios/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "writing-livekit-scenarios", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install livekit-examples/agent-starter-python writing-livekit-scenariosInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add livekit-examples/agent-starter-python --skill writing-livekit-scenarios -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/livekit-examples/agent-starter-python.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/writing-livekit-scenarios .github/skills/writing-livekit-scenarios && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "writing-livekit-scenarios" agent skill from https://github.com/livekit-examples/agent-starter-python/tree/main/.agents/skills/writing-livekit-scenarios into .github/skills/writing-livekit-scenarios/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "writing-livekit-scenarios", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add livekit-examples/agent-starter-python --skill writing-livekit-scenarios -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install livekit-examples/agent-starter-python writing-livekit-scenarios --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/livekit-examples/agent-starter-python.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/writing-livekit-scenarios .opencode/skills/writing-livekit-scenarios && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "writing-livekit-scenarios" agent skill from https://github.com/livekit-examples/agent-starter-python/tree/main/.agents/skills/writing-livekit-scenarios into .opencode/skills/writing-livekit-scenarios/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "writing-livekit-scenarios", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
writing-livekit-scenariosCreates and maintains the scenarios a LiveKit agent simulation runs, and wires the agent to consume them.
Writing Livekit Scenarios is an agent skill from livekit-examples/agent-starter-python. Creates and maintains the scenarios a LiveKit agent simulation runs, and wires the agent to consume them. Use when the user asks "what should I test", "generate simulation scenarios", "write scenarios for my agent", "add a scenario for X", "organize my scenario files", "my simulations are flaky", "the scenario hits my real database", "seed state per scenario", "it passed but booked the wrong thing", "grade the final state", or wants to stress-test a flow before shipping. Covers generating a baseline with the…
Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/connecting-the-agent.md`, `references/risk-coverage.md` and `references/scenario-craft.md`).
It sits in Testing & QA, covering Load testing. The repository describes itself as: A complete voice AI starter for LiveKit Agents with Python. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 76ddabb. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Writing Livekit Scenarios loads about 2.5k tokens when it runs, and up to ~6.2k if it reads all its reference files. Until then it costs about 219 tokens; SKILL.md has 1,411 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from livekit-examples/agent-starter-python at commit 76ddabb, republished under its MIT licence (© livekit-examples). 1,411 words, ~2,510 tokens.
.claude/skills/writing-livekit-scenarios/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.A scenario is a simulated user's instructions (who they are, what they want) plus
agent_expectations (what counts as success). A simulation plays the scenario against the real
agent, and an LLM judge grades the transcript.
Runs are disposable. The scenario file is what lasts: it gets reviewed in diffs, re-run for years, and it's what catches a prompt edit that breaks something without anyone noticing.
Before writing a file, look up the exact schema and CLI flags with reading-livekit-docs. Field
names and commands change, so this skill doesn't restate them. Conceptually, a file is a named group
of scenarios. Each scenario has the simulated user's instructions, the pass criteria, and optionally
tags for grouping and per-scenario data the agent can read at runtime. If the CLI offers to add
stable per-scenario ids to a file, accept and commit them.
Don't start from an empty file. LiveKit's generator reads the agent's source and produces a decent first pass much faster than you'd write ten scenarios by hand:
lk agent simulate text -n 10 # confirm the exact flags with --helpGenerating from source uploads the code to LiveKit Cloud so the generator can read it, which is why the CLI asks for confirmation first. Tell the user that before running it and let them decline. Some code can't leave the machine, and in that case you write the scenarios by hand. A flag skips the prompt for non-interactive runs.
When the run finishes, the CLI either tells you where it saved the generated scenarios or offers to save them into the project. Either way, get that file into the repo as the starting point.
You can't steer the generator. It infers intent from the code, so it writes plausible conversations instead of the ones this agent's users have, and it doesn't know what the user is worried about. Treat its output as a draft:
agent_expectations, its verdict
flips between runs. This is the biggest cause of flaky scenarios.references/risk-coverage.md
explains how to turn the agent's constraints into a checklist and give each item a scenario.The user knows which flow keeps breaking, which customer complained, and which change they're nervous about. Ask, and weight the suite toward that area with more and deeper scenarios.
Focus adds coverage. It never removes coverage of the agent's hard limits. If the user has no preference, generate broadly and tell them that's what you did.
Read the agent's code locally with your normal tools before writing anything. Look for what a user can ask for (capabilities), where requests get blocked (constraints: required steps, unavailable items by name, caps, eligibility), and what the agent must refuse.
Constraints matter most. A scenario that asks for something the agent can't do is only valid if the expectation is that the agent says so. Written the other way, the test fails when the agent behaves correctly.
Scope is the agent reachable from the session entrypoint, plus agents it hands off to and tasks it awaits. Ignore other classes in the directory, unused imports, and example files.
There are two shapes, and which one you use depends on what the scenario is for. Details and
examples are in references/scenario-craft.md.
In both shapes, goals are requests to the agent, never the agent's own actions. Use real values from the agent's domain and assume no prior state. Vary persona, mood and difficulty across the suite so it isn't ten copies of the same cooperative caller.
The run command takes one scenario file, so a file is a run. Split along the lines you want to run separately, which usually isn't topic.
The most important axis is how the set is graded:
agent_expectations alone.These need different instructions shapes, different agent wiring, and often a different run cadence, so they go in different files. The second axis is cadence: a small set to run before a merge, and the full set before a release.
Give each file a name that describes the set, since it labels the run. Inside a file, use tags
to slice. Tag feature so a failure points at the part of the agent that owns it, and add whatever
else you filter by (channel, difficulty). Put a header comment on the file recording the set's
assumptions: pinned dates, required environment variables, and what its expectations depend on.
A scenario should give the same result months from now as it does today.
A scenario file can't fix two problems by itself. A scenario that reaches a real backend grades differently every run, and a judge that only reads the transcript will pass a run that booked the wrong room. Both are fixed in the agent's code, in one branch at the top of the entrypoint:
Only tool-flow scenarios need this. Open-ended and adversarial ones are graded on the conversation
alone. references/connecting-the-agent.md covers it in full, including how to confirm the wiring
took effect. Look up the current API names with reading-livekit-docs.
The most valuable scenarios describe something that went wrong. Once the agent is live, derive them
from recorded sessions instead of inventing more. Where the CLI supports it, a subcommand derives a
scenario from a recorded session (check lk agent simulate --help). A derived scenario describes
one call, so widen it to the class of calls it represents and sharpen its expectation into the rule
you want enforced.
Every production bug you fix should get a permanent scenario in the file.
The judge grades the agent against agent_expectations, so a careless expectation punishes correct
behavior:
references/risk-coverage.md — turning constraints into a checklist and guaranteeing coveragereferences/scenario-craft.md — instructions shapes, persona variety, audio-specific scenariosreferences/connecting-the-agent.md — the agent-side code: detect, seed, mock, grade final staterunning-livekit-simulationsreading-livekit-docs© livekit-examples, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (references) in .agents/skills/writing-livekit-scenarios of livekit-examples/agent-starter-python.
Open the folder on GitHubat commit 76ddabb
We found 4 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in livekit-examples/agent-starter-python, which our catalogue first saw on October 7, 2026.
Writing Livekit Scenarios next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Writing Livekit Scenarios this skilllivekit-examples/agent-starter-python | 264 | 1 repos | ~2.5k | Automated safety check: Pass | MIT | |
| Go Testingcxuu/golang-skills | 173 | 1 repos | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| Goalcraftgrp06/goalcraft | 102 | — | ~3.8k | Automated safety check: Pass | MIT | |
| Thinking Partnermattnowdev/thinking-partner | 206 | — | ~4.4k | Automated safety check: Pass | MIT | |
| Visionkunchenguid/vision | 331 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Volt Load TestingowenHochwald/volt | 141 | — | ~1.2k | Automated safety check: Pass | MPL-2.0 |
cxuu/golang-skills
A skill your agent uses when writing, reviewing, or improving Go test code — including table-driven tests, subtests, parallel tests, test helpers, test doubles, and assertions with cmp.Diff.
grp06/goalcraft
Turn a rough draft, vague ambition, or messy task brief into a powerful Codex /goal objective for persistent, evidence-checked work.
mattnowdev/thinking-partner
A deterministic thinking partner that challenges assumptions and applies mental models to sharpen decisions, solve problems, and think more clearly.
kunchenguid/vision
Draft and stress-test a VISION.md for a repository, then iterate with the author on an interactive review board until approved.
owenHochwald/volt
Safely exercise and evaluate HTTP APIs with the Volt CLI, including authenticated requests, JSON bodies, staged load, machine-readable results, performance baselines, and before/after comparisons.
harryvondiesel-web/5-persona-advisory-board
Run a 5 Persona Advisory Board review, board review, strategic decision stress-test, offer critique, risk check, or pricing/timing/positioning decision review.
livekit-examples/agent-starter-python
Drives a multi-turn conversation with a LiveKit agent running locally to see what it does.
livekit-examples/agent-starter-python
Looks up current LiveKit facts (API signatures, CLI flags, config options, model and provider support, SDK changelogs, pricing) from the docs instead of answering from memory.
livekit-examples/agent-starter-python
Runs LiveKit agent simulations and acts on the results. An agent skill from livekit-examples/agent-starter-python.
livekit-examples/agent-starter-python
Builds voice and chat AI agents with LiveKit Agents and LiveKit Cloud.
livekit-examples/agent-starter-python
Deploys and operates a LiveKit agent in production: shipping a version to LiveKit Cloud and rolling it back, secrets and configuration, the worker process model and prewarming, safe async inside…
livekit-examples/agent-starter-python
Writes turn-level tests for a LiveKit agent in the user's normal test suite: pytest (Python) or Vitest (Node.js).
Categories
Creates and maintains the scenarios a LiveKit agent simulation runs, and wires the agent to consume them. Writing Livekit Scenarios is an agent skill from livekit-examples/agent-starter-python. Creates and maintains the scenarios a LiveKit agent simulation runs, and wires the agent to consume them.
Writing Livekit Scenarios fits situations like: the user asks what should I test; generate simulation scenarios; write scenarios for my agent; add a scenario for X.
Run `npx skills add livekit-examples/agent-starter-python --skill writing-livekit-scenarios -a claude-code`. Or copy the skill folder (.agents/skills/writing-livekit-scenarios in livekit-examples/agent-starter-python) into .claude/skills/writing-livekit-scenarios in your project. Claude Code loads it when a task matches its description.
Run `npx skills add livekit-examples/agent-starter-python --skill writing-livekit-scenarios -a codex`. Or copy the skill folder (.agents/skills/writing-livekit-scenarios in livekit-examples/agent-starter-python) into .agents/skills/writing-livekit-scenarios in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add livekit-examples/agent-starter-python --skill writing-livekit-scenarios -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/writing-livekit-scenarios, .gemini/skills/writing-livekit-scenarios, .github/skills/writing-livekit-scenarios and .opencode/skills/writing-livekit-scenarios in your project.
SKILL.md names no scripts, command-line tools or credentials: Writing Livekit Scenarios is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Writing Livekit Scenarios is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Writing Livekit Scenarios: Go Testing (cxuu/golang-skills, 173 stars), Goalcraft (grp06/goalcraft, 102 stars), Thinking Partner (mattnowdev/thinking-partner, 206 stars) and Vision (kunchenguid/vision, 331 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
livekit-examples (a GitHub organization) maintains it in livekit-examples/agent-starter-python, which has 264 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 9, 2026.
Source: livekit-examples/agent-starter-python on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.