Communitygithub.com

RageClick

URL과 사용자 목표를 받아 약속된 동작을 깨는 짧고 재현 가능한 시퀀스를 생성합니다. 반복 가능한 증거를 위해 브라우저 도구와 번들된 Playwright 러너를 사용합니다.

RageClick란 무엇인가요?

RageClick은 웹 애플리케이션의 특정 동작(예: 저장, 제출, 오류 복구)이 명시적 또는 암시적으로 약속한 대로 작동하는지 확인하기 위해 설계된 AI 에이전트 스킬입니다. URL과 사용자 목표가 주어지면, 이 스킬은 먼저 기존 브라우저 도구를 사용해 실제 페이지를 검사하고 정상적인 성공 워크플로를 실행합니다. 그런 다음, `references/plans.md`와 `references/perturbations.md`의 템플릿을 기반으로 JSON 테스트 계획을 작성하여 반복 클릭, 탐색, 유효하지 않은 파일 업로드, 페이지 새로고침, 지연된 요청 등 한 번에 하나씩 교란(perturbation)을 적용합니다. 이 계획은 `scripts/run.mjs` 스크립트로 실행되며, 번들된 Playwright를 통해 새로운 브라우저 컨텍스트에서 테스트를 수행하고 증거(스크린샷, 트레이스, 비디오, 재생 스크립트)를 생성합니다. 관찰된 실패는 최소 두 번 재현되어야 하며, 최종 재현 스크립트(`replay.mjs`)는 회귀 테스트 명령으로 사용될 수 있습니다. 이 스킬은 로컬 애플리케이션 또는 명시적으로 승인된 테스트 환경에서만 작동하며, 초기 권한 범위를 벗어난 구매, 메시지 전송, 데이터 삭제 등은 수행하지 않습니다. 주요 제한 사항으로는 Chromium 브라우저, CSS 선택자, 기본 포인터 이벤트만 지원하며, 리모트 스테이징, HTTP 리디렉션, 스트리밍 응답, WebSocket 등은 자동화할 수 없습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/K-kiron/RageClick/tree/main/skills/rageclick

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

RageClick은(는) 무엇을 하나요?

URL과 사용자 목표를 받아 약속된 동작을 깨는 짧고 재현 가능한 시퀀스를 생성합니다. 기존 브라우저 도구를 사용해 실제 페이지를 검사한 다음, 번들된 Playwright 러너를 사용해 반복 가능한 증거를 만듭니다. 이 스킬은 시각적 디자인을 평가하거나 실제 사용자 연구를 대표한다고 주장하지 않습니다.

범위 및 성공 기준

소유한 픽스처, 로컬 앱, 또는 명시적으로 승인된 테스트 환경에서만 작동합니다. 번들된 러너는 루프백 URL만 허용하며, 새로운 브라우저 컨텍스트를 시작하고 정확한 출처 외부의 요청을 차단합니다. 로컬 앱은 여전히 서버를 통해 실제 백엔드를 변경할 수 있습니다. 제출하기 전에 합성 데이터와 일회용 계정을 설정하십시오. 구매, 메시지 전송, 중요한 데이터 삭제, 또는 액세스 설정 변경을 수행하지 마십시오. 기존 권한은 동의된 워크플로에만 적용됩니다.

사용자의 목표와 관찰된 UI에서 하나의 구체적인 불변(invariant)을 식별하십시오. 하나의 프로젝트에 대한 하나의 제출 의도, 유효하지 않은 파일 후 복구, 또는 약속된 저장 후에도 유지되는 초안 등이 예시입니다. 계약이 모호한 경우, 결함을 임의로 만들지 말고 관찰을 기록하거나 해당 특정 동작에 대해 질문하십시오. 애플리케이션 버전 또는 커밋을 기록하고, 사용할 수 없으면 unknown을 사용하십시오.

탐색, 교란, 재생

  1. 사용 가능한 브라우저 도구 또는 대상 소스를 사용해 현재 페이지를 검사합니다. 실제 증거에서 안정적인 레이블, 역할 또는 테스트 ID를 선택합니다. 먼저 일반적인 성공 워크플로를 실행합니다. 완료할 수 없으면 해당 전제 조건을 해결하거나 별도로 보고합니다.

  2. references/plans.md를 읽고 JSON 계획을 작성합니다. references/perturbations.md에서 적용 가능한 템플릿을 선택합니다. 각 케이스마다 한 번에 하나의 차원만 변경합니다. 새로운 브라우저 컨텍스트는 브라우저 상태를 격리하지만, 서버 데이터는 알려진 리셋 또는 고유한 일회용 계정이 필요합니다. 새 브라우저가 데이터베이스를 재설정한다고 가정하지 마십시오.

  3. 이 스킬 디렉토리에서 npm ci와 npx playwright install chromium을 실행한 후 다음 명령을 실행합니다:

    node scripts/run.mjs --url http://127.0.0.1:3000 --plan /absolute/path/case.json --out /absolute/path/evidence --app-version COMMIT
    

    출력 디렉토리는 새로워야 합니다. 러너는 읽기 쉬운 보고서, 정확한 계획, 단계별 결과, 스크린샷, 트레이스, 비디오 및 재생 스크립트를 작성합니다. 러너는 목표나 선택자를 스스로 추론할 수 없습니다. 이 스킬이 그 작업을 수행합니다. 내구성 있는 예시로 요청되지 않는 한 생성된 증거를 대상 저장소 외부에 보관하십시오.

  4. observed_failure를 단정문 불일치(assertion mismatch)로 취급하고, 확립된 근본 원인으로 간주하지 마십시오. 동일한 케이스를 새로운 상태에서 최소 두 번 반복한 후에야 재현 가능하다고 말하십시오. 실패와 성공을 모두 캡처하고, 모순되는 재실행 결과를 절대 폐기하지 마십시오. execution_error는 액션, 선택자, 브라우저 또는 경계가 실패했음을 의미하며 제품 증거가 아닙니다. 주관적인 UX 의견은 객관적인 단정문과 별도로 기록하십시오.

  5. 실패를 변경하지 않고 시퀀스를 최소화한 다음, replay.mjs를 회귀 명령(종료 코드 0: 통과, 1: 단정문 불일치, 2: 실행/설정 오류)으로 사용합니다. 앱을 수정할 권한이 있는 경우, 수정된 버전에 대해 동일한 계획을 다시 실행하고 일반 경로가 여전히 통과하는지 확인합니다. 통과 결과를 조작하기 위해 단정문을 변경하지 마십시오.

위반된 계약, 실제 상태와 예상 상태, 발생 횟수, 앱/브라우저 버전, 정확한 명령 및 증거 경로를 보고합니다. 비디오, 트레이스, 기준선, 리셋 또는 재현성이 없는 경우를 명시합니다. 공유 전에 자격 증명과 개인 데이터를 삭제합니다. 트레이스에는 완전한 요청/응답 데이터가 포함될 수 있습니다. 이 스킬은 게시 또는 외부 메시지를 암시하지 않습니다.

제한 사항

러너는 Chromium, CSS 선택자, 기본 포인터 이벤트, 합성 인라인 파일 및 제한된 요청 지연을 사용합니다. 요청 지연은 대역폭 조절이나 패킷 손실이 아닙니다. 원격 스테이징, HTTP 리디렉션(동일 출처 리디렉션 포함), 스트리밍 응답, 다중 출처 로그인, 서비스 워커, WebSocket 또는 임의 JavaScript를 자동화할 수 없습니다. 응답은 리디렉션과 전송 재시도가 비활성화된 Playwright를 통해 버퍼링되므로 스트리밍 및 네트워크 타이밍 정확도가 제한됩니다. 브라우저 자격 증명 및 Set-Cookie 정책 테스트도 지원되지 않습니다. API 전송은 브라우저 페치와 다르게 응답 쿠키를 저장할 수 있습니다. 지원되지 않는 워크플로의 경우 이미 사용 가능하고 승인된 브라우저 도구를 사용하고 동일한 증거 계약을 유지하며, 지원되지 않는 교란을 명시적으로 표시하십시오. 테스트를 통과시키기 위해 러너의 출처 경계를 약화시키지 마십시오.

관련 스킬