Agent skill

Test Generation

by fossasia in fossasia/eventyay-interpretation

A skill your agent uses to write tests for VoxBento features.

Apache-2.0Auto-check passedTesting & QA

Install Test Generation

skills CLI
$ npx skills add fossasia/eventyay-interpretation --skill test-generation -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install fossasia/eventyay-interpretation test-generation --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/fossasia/eventyay-interpretation.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/test-generation .claude/skills/test-generation && rm -rf skills-src

Use ~/.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/

Facts

Skill name
test-generation
GitHub stars
1.6k
Token cost
~1.3k tokens
SKILL.md length
149 words
Files
1
Skills in repo
38
Repo updated
First seen
Licence
Apache-2.0

At a glance

A skill your agent uses to write tests for VoxBento features.

  • Works in 7 steps: WS token scope mismatch → 4003 close code. → CaptionAggregator forced finalization… → Fernet key rotation (MultiFernet with 2… → …
  • Write tests for VoxBento features
  • SKILL.md covers Test Infrastructure, Test Patterns by Area, Test File Conventions and Coverage Gaps (prioritised)
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Test Generation is an agent skill from fossasia/eventyay-interpretation. Use this skill to write tests for VoxBento features. All tests use pytest + anyio. Reference: tests/conftest.py.

Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering Test generation and Unit testing. It works with pytest and FastAPI. The repository describes itself as: A plugin for live interpretation of video streams. The licence is Apache-2.0.

When your agent uses it

  • Write tests for VoxBento features
  • Tasks that involve Test generation
  • Tasks that involve Unit testing

Example prompts

  • “/test-generation”

Requirements

  • Python 3

Workflow steps

7 steps, taken from the first numbered list in SKILL.md.

  1. WS token scope mismatch → 4003 close code.
  2. CaptionAggregator forced finalization (50 words, 15 seconds).
  3. Fernet key rotation (MultiFernet with 2 keys).
  4. BoothRegistry.set_active_interpreter permission denial.
  5. Admin route 403 when no auth cookie.
  6. _ensure_mediamtx_path cache invalidation path.
  7. redeem_invite_token → already used + expired cases.

What it can do on your machine

Read from SKILL.md and the folder at commit 1ca0139. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Test Generation loads about 1.3k tokens when it runs. Until then it costs about 34 tokens; SKILL.md has 149 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~34
When it runs · the whole SKILL.md, loaded when a task matches
~1.3k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from fossasia/eventyay-interpretation at commit 1ca0139, republished under its Apache-2.0 licence (© fossasia). 149 words, ~1,284 tokens.

Download SKILL.mdSave it as .claude/skills/test-generation/SKILL.md (or your agent's skills folder).
name
test-generation
description
Use this skill to write tests for VoxBento features. All tests use `pytest` + `anyio`. Reference: `tests/conftest.py`.

Skill: Test Generation

Use this skill to write tests for VoxBento features. All tests use pytest + anyio. Reference: tests/conftest.py.


Test Infrastructure

Setup (tests/conftest.py)
python
pytest_plugins = ('anyio',)

@pytest.fixture(params=['asyncio'])
def anyio_backend(request):
    return request.param

All async tests use @pytest.mark.anyio or @pytest.mark.asyncio.

In-memory DB fixture pattern
python
import pytest
from portal.database import configure, init_db, drop_db, get_session

@pytest.fixture(autouse=True)
async def test_db():
    configure('sqlite+aiosqlite:///:memory:')
    await init_db()
    yield
    await drop_db()
FastAPI test client pattern
python
import pytest
from httpx import AsyncClient, ASGITransport
from fastapi_app import app

@pytest.fixture
async def client():
    async with AsyncClient(transport=ASGITransport(app=app), base_url='http://test') as c:
        yield c

Test Patterns by Area

Booth State Tests (tests/test_booth_state.py)
python
from portal.booth_state import BoothRegistry

async def test_join_participant():
    registry = BoothRegistry()
    participant, state = await registry.join_participant(
        booth_id='test-en',
        display_name='Alice',
        role='interpreter',
        language='English',
        channel_id='test/en',
    )
    assert participant.role == 'interpreter'
    assert state['active_interpreter_id'] == participant.participant_id
Database Tests (tests/test_database.py)
python
from portal.database import create_event, create_room, create_booth, get_session

async def test_create_event(test_db):
    async with get_session() as session:
        ev = await create_event(session, slug='myevent', display_name='My Event')
    assert ev.id is not None
    assert ev.slug == 'myevent'
Route Tests (tests/test_fastapi_app.py)
python
async def test_healthz(client):
    resp = await client.get('/healthz')
    assert resp.status_code == 200
    data = resp.json()
    assert data['ok'] is True

async def test_login_invalid(client):
    resp = await client.post('/login', data={'email': 'x@x.com', 'password': 'wrong'})
    assert resp.status_code == 403
Auth Tests (tests/test_user_auth.py)
python
from portal.auth import create_user_token, decode_token

def test_user_token_roundtrip():
    token = create_user_token(user_id=1, email='a@b.com', display_name='Alice', is_admin=False)
    payload = decode_token(token)
    assert payload['sub'] == '1'
    assert payload['user'] is True
    assert payload['is_admin'] is False
Invite Token Tests (tests/test_join_flow.py)
python
async def test_invite_token_join(client, test_db):
    # Setup: create event, room, booth, token via DB helpers
    async with get_session() as session:
        ev = await create_event(session, slug='test', display_name='T')
        room = await create_room(session, event_id=ev.id, display_name='R')
        booth = await create_booth(session, event_id=ev.id, room_id=room.id,
                                   language_code='en', language_name='English')
        token = await create_invite_token(session, booth_id=booth.id, role='interpreter')
    
    resp = await client.get(f'/join/{token.token}', follow_redirects=False)
    assert resp.status_code == 303
    assert '/interpreter/test/en' in resp.headers['location']
    assert 'session_token' in resp.cookies
WebSocket Tests
python
async def test_ws_booth_join(client, test_db):
    # Setup booth + user with role
    ...
    async with client.websocket_connect(f'/ws/booth/test-en') as ws:
        await ws.send_json({
            'type': 'booth:join',
            'display_name': 'Alice',
            'role': 'interpreter',
            'language': 'English',
            'channel_id': 'test/en',
        })
        msg = await ws.receive_json()
        assert msg['type'] == 'booth:joined'

Test File Conventions

Test areaFile
Route/HTTPtests/test_fastapi_app.py
Booth state logictests/test_booth_state.py
Booth identity schemetests/test_booth_identity.py
DB CRUDtests/test_database.py
Admin paneltests/test_admin_panel.py
Roles + permissionstests/test_roles.py
Cryptotests/test_crypto.py
User authtests/test_user_auth.py
Invite token jointests/test_join_flow.py
Membershipstests/test_memberships_tokens.py
Transcriptiontests/test_transcription_concurrency.py

Coverage Gaps (prioritised)

  1. WS token scope mismatch → 4003 close code.
  2. CaptionAggregator forced finalization (50 words, 15 seconds).
  3. Fernet key rotation (MultiFernet with 2 keys).
  4. BoothRegistry.set_active_interpreter permission denial.
  5. Admin route 403 when no auth cookie.
  6. _ensure_mediamtx_path cache invalidation path.
  7. redeem_invite_token → already used + expired cases.

© fossasia, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/test-generation of fossasia/eventyay-interpretation.

Open the folder on GitHubat commit 1ca0139

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders. This page covers the copy in fossasia/eventyay-interpretation, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Test Generation 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.

Test Generation compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Test Generation this skillfossasia/eventyay-interpretation1.6k—~1.3kAutomated safety check: PassApache-2.0
Adk Verify Snippetsgoogle/adk-python22k—~1.4kAutomated safety check: PassApache-2.0
Hermetic Python Unit TestsdimensionalOS/dimos4.6k—~1.4kAutomated safety check: PassCustom licence
Test Coverage Reviewareed1192/finance-news-aggregator149—~2.6kAutomated safety check: PassMIT
Write Test389ds/389-ds-base294—~1.8kAutomated safety check: PassCustom licence
MoAI TDD Workflowmodu-ai/moai-adk1.2k—~3.1kAutomated safety check: PassApache-2.0

Similar skills

  • Adk Verify Snippets

    google/adk-python

    Official

    Checks that every Python code block in a Markdown file actually compiles and runs, by extracting each block to a temporary file, executing it in an isolated subprocess, and writing a pass/fail…

    22k GitHub stars~1.4k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Hermetic Python Unit Tests

    dimensionalOS/dimos

    Rules for writing, fixing and reviewing pytest unit tests that are hermetic: behavior-focused, deterministic, isolated and cheap to run.

    4.6k GitHub stars~1.4k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Test Coverage Review

    areed1192/finance-news-aggregator

    Audit, plan, write, and verify unit tests for Python projects using pytest.

    149 GitHub stars~2.6k tokensUpdated 5 mo ago
    Testing & QAAuto-check passed
  • Write Test

    389ds/389-ds-base

    Add or extend a pytest integration test for 389 Directory Server under dirsrvtests/.

    294 GitHub stars~1.8k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • MoAI TDD Workflow

    modu-ai/moai-adk

    Drives test-first development through the RED, GREEN, REFACTOR cycle, with a config switch that selects between TDD and a DDD workflow for existing code.

    1.2k GitHub stars~3.1k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Testing

    meleantonio/ChernyCode

    Testing conventions using pytest. An agent skill from meleantonio/ChernyCode.

    516 GitHub stars~408 tokensUpdated 1 mo ago
    Testing & QAAuto-check passed

More from fossasia/eventyay-interpretation

All 38 skills in this repo
  • Git Guardrails Claude Code

    fossasia/eventyay-interpretation

    Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute.

    1.6k GitHub starsUsed in 13 repos~578 tokens
    Auto-check passed
  • Diagnosing Bugs

    fossasia/eventyay-interpretation

    Diagnosis loop for hard bugs and performance regressions. An agent skill from fossasia/eventyay-interpretation.

    1.6k GitHub starsUsed in 32 repos~2.1k tokens
    Auto-check passed
  • Domain Modeling

    fossasia/eventyay-interpretation

    Build and sharpen a project's domain model. An agent skill from fossasia/eventyay-interpretation.

    1.6k GitHub starsUsed in 31 repos~821 tokens
    Auto-check passed
  • Setup Pre Commit

    fossasia/eventyay-interpretation

    Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo.

    1.6k GitHub starsUsed in 13 repos~565 tokens
    Auto-check passed
  • Improve

    fossasia/eventyay-interpretation

    Survey any codebase as a senior advisor and produce prioritized, self-contained implementation plans for OTHER models/agents to execute.

    1.6k GitHub starsUsed in 10 repos~3.7k tokens
    Auto-check: warnings
  • Migrate To Shoehorn

    fossasia/eventyay-interpretation

    Migrate test files from as type assertions to @total-typescript/shoehorn.

    1.6k GitHub starsUsed in 12 repos~698 tokens
    Auto-check passed

Works with

Categories

Questions about Test Generation

What does Test Generation do?

A skill your agent uses to write tests for VoxBento features. Test Generation is an agent skill from fossasia/eventyay-interpretation. Use this skill to write tests for VoxBento features.

When should I use Test Generation?

Test Generation fits situations like: write tests for VoxBento features; tasks that involve Test generation; tasks that involve Unit testing.

How do I install Test Generation in Claude Code?

Run `npx skills add fossasia/eventyay-interpretation --skill test-generation -a claude-code`. Or copy the skill folder (.agents/skills/test-generation in fossasia/eventyay-interpretation) into .claude/skills/test-generation in your project. Claude Code loads it when a task matches its description.

How do I install Test Generation in Codex?

Run `npx skills add fossasia/eventyay-interpretation --skill test-generation -a codex`. Or copy the skill folder (.agents/skills/test-generation in fossasia/eventyay-interpretation) into .agents/skills/test-generation in your project. Codex loads it when a task matches its description.

Can I use Test Generation in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add fossasia/eventyay-interpretation --skill test-generation -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/test-generation, .gemini/skills/test-generation, .github/skills/test-generation and .opencode/skills/test-generation in your project.

What does Test Generation need to run?

SKILL.md names no scripts, command-line tools or credentials: Test Generation is instructions for the agent only. Our summary lists: Python 3.

Does Test Generation access the network?

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.

Is Test Generation safe to install?

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.

What licence does Test Generation use?

Test Generation is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Test Generation use?

About 1.3k tokens (SKILL.md is roughly 5.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Test Generation?

Skills that share tags, products or a category with Test Generation: Adk Verify Snippets (google/adk-python, 22k stars), Hermetic Python Unit Tests (dimensionalOS/dimos, 4.6k stars), Test Coverage Review (areed1192/finance-news-aggregator, 149 stars) and Write Test (389ds/389-ds-base, 294 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Test Generation?

fossasia (a GitHub organization) maintains it in fossasia/eventyay-interpretation, which has 1,552 GitHub stars. The repository holds 38 skills in this directory. The repository was last updated on October 5, 2026.

Source: fossasia/eventyay-interpretation on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.