사용 방법
- 설치 명령을 복사하고 자신의 에이전트 환경에 설치하기 전에 소스 패키지를 확인하세요.
- 필요한 도구, 인증 정보, 지원 환경은 원본 문서에서 확인하세요.
- 입력과 원하는 산출물을 설명하고 출처와 결과를 대조하세요.
npx skills add https://github.com/agentmantis/test-skills --skill create-handover-test시작 전 확인
- 설치에는 모델 구독, API 한도, 파일 접근 권한이 포함되지 않습니다.
- 별점 수와 설치 수는 활동 지표이며 독립적인 품질·보안 검증이 아닙니다.
원본 저장소의 제목, 예시, 코드, 표, 링크, 이미지를 유지해 표시합니다.
Create Handover Test
Generate a ticket-driven handover test that validates specific acceptance criteria.
Workflow
- Parse the ticket key and description from the user's request (e.g.,
PROJ-456 bulk export) - Check if a POM exists for the page under test in
e2e/poms/
- If yes, read it and add any new methods needed for this ticket's acceptance criteria
- If no, create one first using the
create-pomskill
- Check if test data exists — create or update as needed
- Create the spec file in
e2e/tests/handover/ - Run the test to verify it passes:
npx playwright test --project="chromium:handover" {TICKET}-{description}.spec.tsNaming Convention
Filename
{TICKET}-{short-description}.spec.ts{TICKET}— The ticket key exactly as it appears in the tracker (e.g.,PROJ-456,MANT-123){short-description}— Brief kebab-case summary (NOT the full ticket title)
Examples:
PROJ-456-bulk-export.spec.tsMANT-123-vault-bulk-delete.spec.tsFEAT-789-user-avatar-upload.spec.ts
test.describe Block
The outer test.describe must include the ticket key for traceability:
test.describe('PROJ-456: Bulk Export', () => {Spec Structure
import { test } from '../../fixtures/base';
import { getAuthFilePath } from '../../helpers/env-config';
import { FeaturePage } from '../../poms/feature.page';
const authFile = getAuthFilePath();
test.describe('PROJ-456: Bulk Export', () => {
test.beforeAll(async ({ browser }) => {
const context = await browser.newContext({
storageState: authFile,
});
const page = await context.newPage();
const pom = new FeaturePage(page);
await pom.setUp();
await page.close();
await context.close();
});
test('should export selected items as CSV', async ({ page, testData }) => {
const pom = new FeaturePage(page);
const items = testData.feature.items;
await pom.navigateToPage();
// ... validate acceptance criteria from ticket
});
test('should show error when no items selected', async ({ page }) => {
const pom = new FeaturePage(page);
await pom.navigateToPage();
// ... validate error handling criteria
});
});See references/handover-spec-template.md for the full template.
POM Rules
Handover tests follow all the same POM rules as regression/smoke tests:
- Use the existing POM for the page under test
- If the ticket requires new interactions, add methods to the existing POM — do NOT create a second POM for the same page
- Only create a new POM if the ticket introduces an entirely new page
- All new POM methods must have full JSDoc with Steps and @param tags
All Standard Rules Apply
- Import
testfrom custom fixtures, not from@playwright/test - No raw
pagecalls in specs — all interaction through POMs - Every test is independent — creates its own data, navigates independently
- No hardcoded test data — use external JSON via the testData fixture
- beforeAll uses manual browser context with storageState for cleanup
Promotion Lifecycle
Handover tests are temporary by design. After the ticket is Done:
| Action | When |
|---|---|
| Promote to regression | Feature is permanent, should run on every build |
| Promote to smoke | Feature is on the critical path |
| Delete | Already covered by existing tests, or feature was reverted |
Use the promote-handover-test skill when ready to promote.
Staleness Policy
- Review
tests/handover/after every sprint/release - Any spec whose ticket is Done/Closed should be promoted or deleted
- Never leave handover tests running indefinitely
File Checklist
- [ ]
e2e/poms/{feature}.page.ts— POM updated with new methods (or new POM created) - [ ]
e2e/test-data/{feature}.json— Test data (created or updated) - [ ]
e2e/tests/handover/{TICKET}-{description}.spec.ts— Spec file - [ ] Filename includes ticket key prefix
- [ ]
test.describeincludes ticket key - [ ] All POM methods have JSDoc
- [ ] Tests pass:
npx playwright test --project="chromium:handover" {TICKET}-{description}.spec.ts




