Polyglot Test Agent
boshi-xixixi/TraeSkill
Generates comprehensive, workable unit tests for any programming language using a multi-agent pipeline.
This skill should be used when writing test cases, fixing bugs, analyzing code for potential issues, or improving test coverage for JavaScript/TypeScript applications.
$ npx skills add ailabs-393/ai-labs-claude-skills --skill test-specialist -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ailabs-393/ai-labs-claude-skills test-specialist --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/ailabs-393/ai-labs-claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/skills/test-specialist .claude/skills/test-specialist && 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 "test-specialist" agent skill from https://github.com/ailabs-393/ai-labs-claude-skills/tree/main/packages/skills/test-specialist into .claude/skills/test-specialist/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-specialist", 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/ailabs-393/ai-labs-claude-skills/tree/main/packages/skills/test-specialistType 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 ailabs-393/ai-labs-claude-skills --skill test-specialist -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ailabs-393/ai-labs-claude-skills test-specialist --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ailabs-393/ai-labs-claude-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/packages/skills/test-specialist .agents/skills/test-specialist && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "test-specialist" agent skill from https://github.com/ailabs-393/ai-labs-claude-skills/tree/main/packages/skills/test-specialist into .agents/skills/test-specialist/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-specialist", 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 ailabs-393/ai-labs-claude-skills --skill test-specialist -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ailabs-393/ai-labs-claude-skills test-specialist --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ailabs-393/ai-labs-claude-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/packages/skills/test-specialist .cursor/skills/test-specialist && 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 "test-specialist" agent skill from https://github.com/ailabs-393/ai-labs-claude-skills/tree/main/packages/skills/test-specialist into .cursor/skills/test-specialist/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-specialist", 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/ailabs-393/ai-labs-claude-skills.git --path packages/skills/test-specialist--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 ailabs-393/ai-labs-claude-skills --skill test-specialist -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ailabs-393/ai-labs-claude-skills test-specialist --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ailabs-393/ai-labs-claude-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/packages/skills/test-specialist .gemini/skills/test-specialist && 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 "test-specialist" agent skill from https://github.com/ailabs-393/ai-labs-claude-skills/tree/main/packages/skills/test-specialist into .gemini/skills/test-specialist/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-specialist", 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 ailabs-393/ai-labs-claude-skills test-specialistInstalls 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 ailabs-393/ai-labs-claude-skills --skill test-specialist -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ailabs-393/ai-labs-claude-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/packages/skills/test-specialist .github/skills/test-specialist && 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 "test-specialist" agent skill from https://github.com/ailabs-393/ai-labs-claude-skills/tree/main/packages/skills/test-specialist into .github/skills/test-specialist/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-specialist", 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 ailabs-393/ai-labs-claude-skills --skill test-specialist -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ailabs-393/ai-labs-claude-skills test-specialist --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ailabs-393/ai-labs-claude-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/packages/skills/test-specialist .opencode/skills/test-specialist && 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 "test-specialist" agent skill from https://github.com/ailabs-393/ai-labs-claude-skills/tree/main/packages/skills/test-specialist into .opencode/skills/test-specialist/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-specialist", 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.
test-specialistThis skill should be used when writing test cases, fixing bugs, analyzing code for potential issues, or improving test coverage for JavaScript/TypeScript applications.
Test Specialist is an agent skill from ailabs-393/ai-labs-claude-skills. This skill should be used when writing test cases, fixing bugs, analyzing code for potential issues, or improving test coverage for JavaScript/TypeScript applications. Use this for unit tests, integration tests, end-to-end tests, debugging runtime errors, logic bugs, performance issues, security vulnerabilities, and systematic code analysis.
Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts and reference files (for example `index.js`, `package.json` and `references/bug_analysis.md`).
It sits in Testing & QA, covering Test coverage, Test generation and Integration testing. It works with JavaScript and TypeScript. The repository describes itself as: This package is use to remove the hustle of finding claudeskills and shift them into any of the user project. This project become a bridge between user's usage and claude skills. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 1a12bc7. 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.
Ships 2 files in scripts/ (Python and JavaScript), which the agent can run.
Shell commands in SKILL.md call:
npmpython3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.
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.
Test Specialist loads about 3.4k tokens when it runs, and up to ~8.7k if it reads all its reference files. Until then it costs about 90 tokens; SKILL.md has 812 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); the scripts in this folder are not scanned.
The full file from ailabs-393/ai-labs-claude-skills at commit 1a12bc7, republished under its MIT licence (© ailabs-393). 812 words, ~3,359 tokens.
.claude/skills/test-specialist/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.Apply systematic testing methodologies and debugging techniques to JavaScript/TypeScript applications. This skill provides comprehensive testing strategies, bug analysis frameworks, and automated tools for identifying coverage gaps and untested code.
Write comprehensive tests covering unit, integration, and end-to-end scenarios.
Structure tests using the AAA pattern (Arrange-Act-Assert):
describe('ExpenseCalculator', () => {
describe('calculateTotal', () => {
test('sums expense amounts correctly', () => {
// Arrange
const expenses = [
{ amount: 100, category: 'food' },
{ amount: 50, category: 'transport' },
{ amount: 25, category: 'entertainment' }
];
// Act
const total = calculateTotal(expenses);
// Assert
expect(total).toBe(175);
});
test('handles empty expense list', () => {
expect(calculateTotal([])).toBe(0);
});
test('handles negative amounts', () => {
const expenses = [
{ amount: 100, category: 'food' },
{ amount: -50, category: 'refund' }
];
expect(calculateTotal(expenses)).toBe(50);
});
});
});Key principles:
Test how components work together, including database, API, and service interactions:
describe('ExpenseAPI Integration', () => {
beforeAll(async () => {
await database.connect(TEST_DB_URL);
});
afterAll(async () => {
await database.disconnect();
});
beforeEach(async () => {
await database.clear();
await seedTestData();
});
test('POST /expenses creates expense and updates total', async () => {
const response = await request(app)
.post('/api/expenses')
.send({
amount: 50,
category: 'food',
description: 'Lunch'
})
.expect(201);
expect(response.body).toMatchObject({
id: expect.any(Number),
amount: 50,
category: 'food'
});
// Verify database state
const total = await getTotalExpenses();
expect(total).toBe(50);
});
});Test complete user workflows using tools like Playwright or Cypress:
test('user can track expense from start to finish', async ({ page }) => {
// Navigate to app
await page.goto('/');
// Add new expense
await page.click('[data-testid="add-expense-btn"]');
await page.fill('[data-testid="amount"]', '50.00');
await page.selectOption('[data-testid="category"]', 'food');
await page.fill('[data-testid="description"]', 'Lunch');
await page.click('[data-testid="submit"]');
// Verify expense appears in list
await expect(page.locator('[data-testid="expense-item"]')).toContainText('Lunch');
await expect(page.locator('[data-testid="total"]')).toContainText('$50.00');
});Apply structured debugging methodology to identify and fix issues.
Reproduction: Reliably reproduce the bug
Isolation: Narrow down the problem
Root Cause Analysis: Determine underlying cause
Fix Implementation: Implement solution
Validation: Ensure completeness
Race Conditions:
// Test concurrent operations
test('handles concurrent updates correctly', async () => {
const promises = Array.from({ length: 100 }, () =>
incrementExpenseCount()
);
await Promise.all(promises);
expect(getExpenseCount()).toBe(100);
});Null/Undefined Errors:
// Test null safety
test.each([null, undefined, '', 0, false])
('handles invalid input: %p', (input) => {
expect(() => processExpense(input)).toThrow('Invalid expense');
});Off-by-One Errors:
// Test boundaries explicitly
describe('pagination', () => {
test('handles empty list', () => {
expect(paginate([], 1, 10)).toEqual([]);
});
test('handles single item', () => {
expect(paginate([item], 1, 10)).toEqual([item]);
});
test('handles last page with partial items', () => {
const items = Array.from({ length: 25 }, (_, i) => i);
expect(paginate(items, 3, 10)).toHaveLength(5);
});
});Proactively identify issues before they become bugs.
Test for common security issues:
describe('security', () => {
test('prevents SQL injection', async () => {
const malicious = "'; DROP TABLE expenses; --";
await expect(
searchExpenses(malicious)
).resolves.not.toThrow();
});
test('sanitizes XSS in descriptions', () => {
const xss = '<script>alert("xss")</script>';
const expense = createExpense({ description: xss });
expect(expense.description).not.toContain('<script>');
});
test('requires authentication for expense operations', async () => {
await request(app)
.post('/api/expenses')
.send({ amount: 50 })
.expect(401);
});
});Test for performance problems:
test('processes large expense list efficiently', () => {
const largeList = Array.from({ length: 10000 }, (_, i) => ({
amount: i,
category: 'test'
}));
const start = performance.now();
const total = calculateTotal(largeList);
const duration = performance.now() - start;
expect(duration).toBeLessThan(100); // Should complete in <100ms
expect(total).toBe(49995000);
});Use parameterized tests to catch edge cases:
test.each([
// [input, expected, description]
[[10, 20, 30], 60, 'normal positive values'],
[[0, 0, 0], 0, 'all zeros'],
[[-10, 20, -5], 5, 'mixed positive and negative'],
[[0.1, 0.2], 0.3, 'decimal precision'],
[[Number.MAX_SAFE_INTEGER], Number.MAX_SAFE_INTEGER, 'large numbers'],
])('calculateTotal(%p) = %p (%s)', (amounts, expected, description) => {
const expenses = amounts.map(amount => ({ amount, category: 'test' }));
expect(calculateTotal(expenses)).toBeCloseTo(expected);
});Use automated tools to identify gaps in test coverage.
Run the provided script to identify source files without tests:
python3 scripts/find_untested_code.py srcThe script will:
Interpretation:
Run the coverage analysis script after generating coverage:
# Generate coverage (using Jest example)
npm test -- --coverage
# Analyze coverage gaps
python3 scripts/analyze_coverage.py coverage/coverage-final.jsonThe script identifies:
Coverage targets:
Ensure tests remain valuable and maintainable.
DRY (Don't Repeat Yourself):
// Extract common setup
function createTestExpense(overrides = {}) {
return {
amount: 50,
category: 'food',
description: 'Test expense',
date: new Date('2024-01-01'),
...overrides
};
}
test('filters by category', () => {
const expenses = [
createTestExpense({ category: 'food' }),
createTestExpense({ category: 'transport' }),
];
// ...
});Clear test data:
// Bad: Magic numbers
expect(calculateDiscount(100, 0.15)).toBe(85);
// Good: Named constants
const ORIGINAL_PRICE = 100;
const DISCOUNT_RATE = 0.15;
const EXPECTED_PRICE = 85;
expect(calculateDiscount(ORIGINAL_PRICE, DISCOUNT_RATE)).toBe(EXPECTED_PRICE);Avoid test interdependence:
// Bad: Tests depend on execution order
let sharedState;
test('test 1', () => {
sharedState = { value: 1 };
});
test('test 2', () => {
expect(sharedState.value).toBe(1); // Depends on test 1
});
// Good: Independent tests
test('test 1', () => {
const state = { value: 1 };
expect(state.value).toBe(1);
});
test('test 2', () => {
const state = { value: 1 };
expect(state.value).toBe(1);
});Follow this decision tree to determine the testing approach:
Adding new functionality?
Fixing a bug?
Improving test coverage?
find_untested_code.py to identify gapsanalyze_coverage.py on coverage reportsAnalyzing code quality?
Unit/Integration Testing:
E2E Testing:
Coverage:
# Run all tests
npm test
# Run with coverage
npm test -- --coverage
# Run specific test file
npm test -- ExpenseCalculator.test.ts
# Run in watch mode
npm test -- --watch
# Run E2E tests
npm run test:e2eFor detailed patterns and techniques, refer to:
references/testing_patterns.md - Comprehensive testing patterns, best practices, and code examplesreferences/bug_analysis.md - In-depth bug analysis framework, common bug patterns, and debugging techniquesThese references contain extensive examples and advanced techniques. Load them when:
Analyze Jest/Istanbul coverage reports to identify gaps:
python3 scripts/analyze_coverage.py [coverage-file]Automatically finds common coverage file locations if not specified.
Output:
Find source files without corresponding test files:
python3 scripts/find_untested_code.py [src-dir] [--pattern test|spec]Output:
© ailabs-393, 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 6 other files (scripts, references) in packages/skills/test-specialist of ailabs-393/ai-labs-claude-skills.
Open the folder on GitHubat commit 1a12bc7
Test Specialist 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 |
|---|---|---|---|---|---|---|
| Test Specialist this skillailabs-393/ai-labs-claude-skills | 455 | — | ~3.4k | Automated safety check: Pass | MIT | |
| Polyglot Test Agentboshi-xixixi/TraeSkill | 276 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Test Writing WorkflowiOfficeAI/AionUi | 33k | 1 repos | ~1.2k | Automated safety check: Pass | Apache-2.0 | |
| OpenROAD Module Test AdderThe-OpenROAD-Project/OpenROAD | 3.2k | — | ~1.8k | Automated safety check: Pass | BSD-3-Clause | |
| Write Testsgrafana/synthetic-monitoring-app | 171 | — | ~1.2k | Automated safety check: Pass | AGPL-3.0 | |
| Write Testsopenplayerjs/openplayerjs | 649 | — | ~1.8k | Automated safety check: Pass | MIT |
boshi-xixixi/TraeSkill
Generates comprehensive, workable unit tests for any programming language using a multi-agent pipeline.
iOfficeAI/AionUi
Sets the test-writing workflow for the repository: risk-first scenario lists, behavior-focused Vitest tests, a full run before each commit and a coverage target.
The-OpenROAD-Project/OpenROAD
Adds integration or unit tests to an OpenROAD module: writes the Tcl test, generates golden files and registers it in both CMake and Bazel.
grafana/synthetic-monitoring-app
Write Jest integration and unit tests for the Grafana Synthetic Monitoring app using React Testing Library, MSW, and src/test helpers.
openplayerjs/openplayerjs
Write or extend Jest tests for OpenPlayerJS to this repo's exact conventions — makeCore factories, typed internals handles instead of as any, media property mocking, fake timers, ads/vast mocks, and…
cwinvestments/memstack
A skill your agent uses when the user says 'write tests', 'add tests', 'test coverage', 'unit tests', 'integration tests', 'component tests', 'mocking', 'edge cases', or needs to generate tests with…
ailabs-393/ai-labs-claude-skills
This skill should be used when analyzing HTML/CSS websites for SEO optimization, fixing SEO issues, generating SEO reports, or implementing SEO best practices.
ailabs-393/ai-labs-claude-skills
This skill should be used when analyzing technical debt in a codebase, documenting code quality issues, creating technical debt registers, or assessing code maintainability.
ailabs-393/ai-labs-claude-skills
This skill should be used when the user requests to create professional business documents (proposals, business plans, or budgets) from templates.
ailabs-393/ai-labs-claude-skills
Comprehensive startup idea validation and market analysis tool.
ailabs-393/ai-labs-claude-skills
This skill should be used when containerizing applications with Docker, creating Dockerfiles, docker-compose configurations, or deploying containers to various platforms.
ailabs-393/ai-labs-claude-skills
Assist writers with story planning, character development, plot structuring, chapter writing, timeline tracking, and consistency checking.
Works with
Categories
This skill should be used when writing test cases, fixing bugs, analyzing code for potential issues, or improving test coverage for JavaScript/TypeScript applications. Test Specialist is an agent skill from ailabs-393/ai-labs-claude-skills. This skill should be used when writing test cases, fixing bugs, analyzing code for potential issues, or improving test coverage for JavaScript/TypeScript applications.
Test Specialist fits situations like: tasks that involve Test coverage; tasks that involve Test generation; tasks that involve Integration testing.
Run `npx skills add ailabs-393/ai-labs-claude-skills --skill test-specialist -a claude-code`. Or copy the skill folder (packages/skills/test-specialist in ailabs-393/ai-labs-claude-skills) into .claude/skills/test-specialist in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ailabs-393/ai-labs-claude-skills --skill test-specialist -a codex`. Or copy the skill folder (packages/skills/test-specialist in ailabs-393/ai-labs-claude-skills) into .agents/skills/test-specialist 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 ailabs-393/ai-labs-claude-skills --skill test-specialist -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-specialist, .gemini/skills/test-specialist, .github/skills/test-specialist and .opencode/skills/test-specialist in your project.
Going by SKILL.md and its folder, Test Specialist needs Python and JavaScript for the scripts in its folder and the command-line tools its instructions call (npm and python3). Our summary lists: Python 3; Node.js.
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Test Specialist is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.4k tokens (SKILL.md is roughly 13k 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 5.4k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Test Specialist: Polyglot Test Agent (boshi-xixixi/TraeSkill, 276 stars), Test Writing Workflow (iOfficeAI/AionUi, 33k stars), OpenROAD Module Test Adder (The-OpenROAD-Project/OpenROAD, 3.2k stars) and Write Tests (grafana/synthetic-monitoring-app, 171 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ailabs-393 (a GitHub user) maintains it in ailabs-393/ai-labs-claude-skills, which has 455 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on November 11, 2025.
Source: ailabs-393/ai-labs-claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.