用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/pluginagentmarketplace/custom-plugin-fullstack --skill fullstack-testing命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | fullstack-testing |
| description | Fullstack testing - unit, integration, E2E, coverage |
| sasmp_version | 1.3.0 |
| bonded_agent | 06-testing-strategy |
| bond_type | PRIMARY_BOND |
| atomic | true |
| single_responsibility | test_implementation |
| parameters | {"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["write_unit_test","write_integration_test","write_e2e_test","analyze_coverage"],"description":"The specific testing action to perform"},"test_framework":{"type":"string","enum":["vitest","jest","pytest","playwright","cypress"],"default":"vitest"},"target":{"type":"string","description":"The file or component to test"},"coverage_threshold":{"type":"number","minimum":0,"maximum":100,"default":80}}} |
| returns | {"type":"object","properties":{"success":{"type":"boolean"},"test_code":{"type":"string"},"files":{"type":"array","items":{"type":"object"}},"coverage":{"type":"object"}}} |
| retry | {"max_attempts":3,"backoff":"exponential","initial_delay_ms":1000,"jitter":true} |
| logging | {"level":"INFO","events":["test_written","coverage_analyzed","flaky_detected"],"metrics":["test_count","coverage_percentage","execution_time"]} |
Atomic skill for testing including unit tests, integration tests, and E2E tests.
Single Purpose: Write and manage tests for fullstack applications
write_unit_testWrite unit tests for a component or function.
// Input
{
action: "write_unit_test",
test_framework: "vitest",
target: "src/services/user.service.ts"
}
// Output
{
success: true,
test_code: "describe('UserService', () => {...})",
files: [
{ path: "src/services/user.service.test.ts", content: "..." }
],
coverage: { statements: 85, branches: 80, functions: 90, lines: 85 }
}
write_integration_testWrite integration tests for API endpoints.
write_e2e_testWrite E2E tests for user flows.
analyze_coverageAnalyze test coverage and identify gaps.
function validateParams(params: SkillParams): ValidationResult {
if (!params.action) {
return { valid: false, error: };
}
(params. !== && !params.) {
{ : , : };
}
{ : };
}
| Error Code | Description | Recovery |
|---|---|---|
| TARGET_NOT_FOUND | Test target not found | Verify file path |
| FRAMEWORK_UNSUPPORTED | Test framework not supported | Check supported frameworks |
| COVERAGE_BELOW_THRESHOLD | Coverage below target | Add more tests |
| FLAKY_TEST_DETECTED | Test is non-deterministic | Fix race condition |
{
"on_invoke": "log.info('fullstack-testing invoked', { action, target })",
"on_success": "log.info('Test created', { files, coverage })",
"on_error": "log.error('Testing skill failed', { error })"
}
import { describe, it, expect } from 'vitest';
import { fullstackTesting } from './fullstack-testing';
describe('fullstack-testing skill', () => {
describe('write_unit_test', () => {
it('should create test file with proper structure', async () => {
const result = await fullstackTesting({
action: 'write_unit_test',
test_framework: 'vitest',
target: 'src/services/user.service.ts'
});
expect(result.success).toBe(true);
expect(result.test_code).toContain('describe');
expect(result.test_code).toContain('it(');
});
it('should include arrange-act-assert pattern', async () => {
const result = await fullstackTesting({
action: 'write_unit_test',
target: 'src/utils/format.ts'
});
expect(result.test_code).toMatch(/Arrange|Act|Assert/);
});
});
describe('analyze_coverage', () => {
it('should identify untested code paths', async () => {
const result = await fullstackTesting({
action: 'analyze_coverage',
coverage_threshold: 80
});
expect(result.success).toBe(true);
expect(result.coverage).toBeDefined();
});
});
});
| Version | Date | Changes |
|---|---|---|
| 1.0.0 | 2024-01 | Initial release |
| 2.0.0 | 2025-01 | Production-grade upgrade with Playwright patterns |