Skip to main content Skills Marketplace Découvrez et explorez les compétences IA créées par la communauté.
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Copier le promptAfficher les détails du prompt Une commande directe contourne le prompt de vérification. Examinez la source avant de l'exécuter.
npx skills add https://github.com/diegosouzapw/awesome-omni-skill --skill core-testerLa commande reste sur une seule ligne. Faites défiler horizontalement pour la vérifier avant de la copier.
Vous préférez une copie locale ? Téléchargez les fichiers actuellement disponibles dans SkillsMP.
Télécharger Zip Téléchargement... Plus depuis ce dépôt Token-efficient tracking for AI orchestration. CLI-first for status updates (~50 tokens), agent fallback for complex ops (~1KB). Use when: updating task status, querying blockers, creating progress files, validating phases.
AshAi extension guidelines for integrating AI capabilities with Ash Framework. Use when implementing vectorization/embeddings, exposing Ash actions as LLM tools, creating prompt-backed actions, or setting up MCP servers. Covers semantic search, LangChain integration, and structured outputs.
This skill should be used when solving hard questions, complex architectural problems, or debugging issues that benefit from GPT-5 Pro or GPT-5.1 thinking models with large file context. Use when standard Claude analysis needs deeper reasoning or extended context windows.
Métiers associés SOC
Basé sur la classification professionnelle SOC
Explorateur de fichiers
2 fichiers name core-tester description Comprehensive testing and quality assurance specialist for ensuring code quality through testing strategies version 1.0.0 category workspace-hub type agent capabilities ["unit_testing","integration_testing","e2e_testing","performance_testing","security_testing"] tools ["Read","Write","Edit","Bash","Glob","Grep"] related_skills ["core-coder","core-reviewer","core-researcher","core-planner"] hooks {"pre":"echo \"🧪 Tester agent validating: $TASK\"\n# Check test environment\nif [ -f \"jest.config.js\" ] || [ -f \"vitest.config.ts\" ]; then\n echo \"✓ Test framework detected\"\nfi\n","post":"echo \"📋 Test results summary:\"\nnpm test -- --reporter=json 2>/dev/null | jq '.numPassedTests, .numFailedTests' 2>/dev/null || echo \"Tests completed\"\n"} requires [] see_also []
Core Tester Skill
QA specialist focused on ensuring code quality through comprehensive testing strategies and validation techniques.
Quick Start
Task ("Tester agent" , "Create comprehensive tests for [feature]" , "tester" )
action : "store" ,
key : "swarm/tester/results" ,
namespace : "coordination" ,
value : JSON .stringify ({ passed : 145 , failed : 0 , coverage : "87%" })
}
When to Use
Writing tests for new features (TDD)
Creating integration tests for APIs
Building E2E tests for user flows
Performance testing critical paths
Security testing authentication/authorization
Prerequisites
Test framework installed (Jest, Vitest, etc.)
Understanding of feature requirements
Access to implementation code
Mock setup for external dependencies
Core Concepts
Test Pyramid
/\
/E2E\ <- Few, high-value
/------\
/Integr. \ <- Moderate coverage
/----------\
/ Unit \ <- Many, fast, focused
/--------------\
Test Quality Metrics
Metric Target Description Statements >80% Line coverage Branches >75% Decision coverage Functions >80% Function coverage Lines >80% Total line coverage
Test Characteristics (FIRST)
Fast : Tests should run quickly (<100ms for unit tests)
Isolated : No dependencies between tests
Repeatable : Same result every time
Self-validating : Clear pass/fail
Timely : Written with or before code
Implementation Pattern
Unit Tests describe ('UserService' , () => {
let service : UserService ;
let mockRepository : jest.Mocked <UserRepository >;
beforeEach (() => {
mockRepository = createMockRepository ();
service = new UserService (mockRepository);
});
describe ('createUser' , () => {
it ('should create user with valid data' , async () => {
const userData = { name : 'John' , email : 'john@example.com' };
mockRepository.save .mockResolvedValue ({ id : '123' , ...userData });
const result = await service.createUser (userData);
expect (result).toHaveProperty ('id' );
expect (mockRepository.save ).toHaveBeenCalledWith (userData);
});
it ('should throw on duplicate email' , async () => {
mockRepository.save .mockRejectedValue (new DuplicateError ());
await expect (service.createUser (userData))
.rejects .toThrow ('Email already exists' );
});
});
});
Integration Tests describe ('User API Integration' , () => {
let app : Application ;
let database : Database ;
beforeAll (async () => {
database = await setupTestDatabase ();
app = createApp (database);
});
afterAll (async () => {
await database.close ();
});
it ('should create and retrieve user' , async () => {
const response = await request (app)
.post ('/users' )
.send ({ name : 'Test User' , email : 'test@example.com' });
expect (response.status ).toBe (201 );
expect (response.body ).toHaveProperty ('id' );
const getResponse = await request (app)
.get (`/users/${response.body.id} ` );
expect (getResponse.body .name ).toBe ('Test User' );
});
});
E2E Tests describe ('User Registration Flow' , () => {
it ('should complete full registration process' , async () => {
await page.goto ('/register' );
await page.fill ('[name="email"]' , 'newuser@example.com' );
await page.fill ('[name="password"]' , 'SecurePass123!' );
await page.click ('button[type="submit"]' );
await page.waitForURL ('/dashboard' );
expect (await page.textContent ('h1' )).toBe ('Welcome!' );
});
});
Edge Case Testing describe ('Edge Cases' , () => {
it ('should handle maximum length input' , () => {
const maxString = 'a' .repeat (255 );
expect (() => validate (maxString)).not .toThrow ();
});
it ('should handle empty arrays gracefully' , () => {
expect (processItems ([])).toEqual ([]);
});
it ('should recover from network timeout' , async () => {
jest.setTimeout (10000 );
mockApi.get .mockImplementation (() =>
new Promise (resolve => setTimeout (resolve, 5000 ))
);
await expect (service.fetchData ()).rejects .toThrow ('Timeout' );
});
it ('should handle concurrent requests' , async () => {
const promises = Array (100 ).fill (null )
.map (() => service.processRequest ());
const results = await Promise .all (promises);
expect (results).toHaveLength (100 );
});
});
Configuration
Performance Testing describe ('Performance' , () => {
it ('should process 1000 items under 100ms' , async () => {
const items = generateItems (1000 );
const start = performance.now ();
await service.processItems (items);
const duration = performance.now () - start;
expect (duration).toBeLessThan (100 );
});
it ('should handle memory efficiently' , () => {
const initialMemory = process.memoryUsage ().heapUsed ;
processLargeDataset ();
global .gc ();
const finalMemory = process.memoryUsage ().heapUsed ;
const memoryIncrease = finalMemory - initialMemory;
expect (memoryIncrease).toBeLessThan (50 * 1024 * 1024 );
});
});
Security Testing describe ('Security' , () => {
it ('should prevent SQL injection' , async () => {
const maliciousInput = "'; DROP TABLE users; --" ;
const response = await request (app)
.get (`/users?name=${maliciousInput} ` );
expect (response.status ).not .toBe (500 );
const users = await database.query ('SELECT * FROM users' );
expect (users).toBeDefined ();
});
it ('should sanitize XSS attempts' , () => {
const xssPayload = '<script>alert("XSS")</script>' ;
const sanitized = sanitizeInput (xssPayload);
expect (sanitized).not .toContain ('<script>' );
expect (sanitized).toBe ('<script>alert("XSS")</script>' );
});
});
Usage Examples
Example 1: TDD Workflow
describe ('calculateDiscount' , () => {
it ('should return 10% discount for users with 10+ purchases' , () => {
const user = { purchases : 15 };
expect (calculateDiscount (user)).toBe (0.1 );
});
});
function calculateDiscount (user ) {
return user.purchases >= 10 ? 0.1 : 0 ;
}
Example 2: Complete Test Suite
describe ('User Registration' , () => {
it ('should register user successfully' , async () => {
});
});
Execution Checklist
Best Practices
Test First : Write tests before implementation (TDD)
One Assertion : Each test should verify one behavior
Descriptive Names : Test names should explain what and why
Arrange-Act-Assert : Structure tests clearly
Mock External Dependencies : Keep tests isolated
Test Data Builders : Use factories for test data
Avoid Test Interdependence : Each test should be independent
Report Results : Always share test results via memory
Error Handling Scenario Recovery Test timeout Increase timeout or optimize test Flaky test Add retries or fix race condition Mock failure Verify mock setup Coverage gap Add missing tests
Metrics & Success Criteria
All tests passing
Coverage >80%
No flaky tests
Performance within targets
Security tests passing
Results stored in memory
Integration Points
MCP Tools
action : "store" ,
key : "swarm/tester/status" ,
namespace : "coordination" ,
value : JSON .stringify ({
agent : "tester" ,
status : "running tests" ,
test_suites : ["unit" , "integration" , "e2e" ],
timestamp : Date .now ()
})
}
action : "store" ,
key : "swarm/shared/test-results" ,
namespace : "coordination" ,
value : JSON .stringify ({
passed : 145 ,
failed : 2 ,
coverage : "87%" ,
failures : ["auth.test.ts:45" , "api.test.ts:123" ]
})
}
action : "retrieve" ,
key : "swarm/coder/status" ,
namespace : "coordination"
}
Performance Testing
type : "test" ,
iterations : 100
}
format : "detailed"
}
Hooks
echo "🧪 Tester agent validating: $TASK "
if [ -f "jest.config.js" ] || [ -f "vitest.config.ts" ]; then
echo "✓ Test framework detected"
fi
echo "📋 Test results summary:"
npm test -- --reporter=json 2>/dev/null | jq '.numPassedTests, .numFailedTests' 2>/dev/null || echo "Tests completed"
Related Skills Remember: Tests are a safety net that enables confident refactoring and prevents regressions. Invest in good tests--they pay dividends in maintainability. Coordinate with other agents through memory.
Version History
1.0.0 (2026-01-02): Initial release - converted from tester.md agent