Communitygithub.com

SenroAI/agent-skills

웹MCP 웹사이트의 리포지토리를 검사하고 사용자 여정을 파악하여 바로 가져올 수 있는 테스트 케이스 스위트를 생성합니다. 웹사이트 코드베이스에서 Senro 테스트 스위트를 생성하거나 확장할 때 사용하세요.

agent-skills란 무엇인가요?

이 스킬은 웹사이트의 소스 코드 리포지토리를 분석하여 WebMCP(웹 기반 모델 컨텍스트 프로토콜) 동작을 테스트하는 Senro 테스트 케이스를 자동 생성합니다. 에이전트는 리포지토리에서 WebMCP 도구 정의(이름, 설명, 입력 스키마 등), 사용자 여정, 성공/실패 상태를 식별한 후, 제공된 가져오기 형식(`references/import-format-v1.md`)에 따라 JSON 테스트 스위트를 생성합니다. 생성된 테스트는 `node <스킬-루트>/scripts/validate-tests.mjs`로 구조적 사전 검증을 거치며, `./senro/` 디렉토리에 저장됩니다. 코드를 변경하거나 비밀 정보를 포함하지 않으며, 리포지토리에서 확인 가능한 실제 경로와 상태만을 테스트에 반영하므로 정확하고 신뢰할 수 있는 테스트 스위트 구축이 가능합니다. Claude Code, Cursor 등 다양한 AI 코딩 에이전트와 호환됩니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/SenroAI/agent-skills/tree/HEAD/skills/senro-tests

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

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

문서

Senro 테스트

사용자가 Senro에 추가한 페이지의 리포지토리에서 요청한 만큼의 유용한 Senro 테스트 케이스를 정확하게 생성합니다. 코딩 에이전트는 WebMCP나 생성된 테스트를 실행하지 않습니다. Senro가 나중에 등록된 페이지에 대해 스위트를 실행합니다.

워크플로우

  1. 현재 리포지토리에 WebMCP 동작을 테스트할 페이지가 포함되어 있는지 확인합니다. 리포지토리를 진실의 원천으로 취급합니다.

  2. 아무것도 생성하기 전에 리포지토리를 검사합니다. .git, 의존성 디렉토리, 빌드 출력, 커버리지 출력, 생성된 파일을 제외합니다.

  3. 프로젝트 자체의 소스, 프레임워크, 의존성, 테스트, 픽스처, 문서를 사용하여 웹사이트가 WebMCP 도구를 어떻게 노출하는지 파악합니다. 특정 WebMCP API, 프레임워크, 파일 레이아웃, 등록 패턴을 가정하지 않습니다.

  4. 발견된 각 도구의 이름, 설명, 입력 스키마, 어노테이션, 구현, 사용 가능한 예제에 대한 내부 인벤토리를 구축합니다.

  5. 리포지토리에서 WebMCP 도구를 확인할 수 없으면 명확히 보고하고 중단합니다. 여러 관련 없는 사이트나 애플리케이션이 있으면 식별하고 어떤 것을 사용할지 질문합니다.

  6. 관련 라우트, 컴포넌트, 데이터 파일, 픽스처, 유효성 검사 코드, 문서, 기존 테스트를 읽어 실제 사용자 여정과 보이는 성공 및 실패 상태를 매핑합니다.

  7. 테스트 케이스를 작성하기 전에 references/import-format-v1.md를 읽습니다. 거기에 문서화된 필드와 구조만 사용합니다.

  8. 요청된 수만큼의 고유한 테스트 케이스를 정확하게 생성합니다. 리포지토리의 가장 강력한 여정을 다루며, 성공적인 워크플로우, 경계 조건, 잘못된 입력, 빈 결과, 복구, 결과적 작업, 그리고 소스가 지원하는 경우 보이는 상태 어서션을 포함합니다.

  9. 리포지토리가 요청된 수의 의미 있고 소스 기반의 케이스를 지원할 수 없으면 제한 사항을 보고하고 중단합니다. 발명된 시나리오, 값, 동작으로 스위트를 채우지 않습니다.

  10. 발견된 소스가 지원하는 도구 이름과 인수만 사용합니다. ID, 계정, 제품, 열거형 값, 백엔드 상태를 절대 발명하지 않습니다. 정확한 런타임 값을 안전하게 설정할 수 없는 경우 목표 전용 테스트를 사용합니다.

  11. 예상되는 경로를 소스가 지원하는 경우에만 예상 도구 호출을 사용합니다. 여러 유효한 경로가 가능한 워크플로우에 정확한 궤적을 강제하지 않습니다.

  12. 필요한 경우 ./senro를 생성합니다. 스위트를 ./senro/test-cases.json에 씁니다. 해당 파일이 디스크에 이미 존재하면 ./senro/test-cases-2.json과 같이 다음 사용 가능한 숫자 접미사를 사용합니다. Git이 추적하는 파일이 삭제된 것은 충돌로 간주하지 않습니다. 스위트를 ./senro에 직접 유지합니다. 기존 파일을 보관하거나 이동하지 않습니다.

  13. 번들된 구조적 사전 검증기를 생성한 파일에 대해 성공을 보고하기 전에 실행합니다:

    node <스킬-루트>/scripts/validate-tests.mjs <출력-경로>
    
  14. 정확한 출력 경로, 테스트 수, 여정 커버리지, 그리고 모든 가정을 보고합니다. 테스트가 런타임에 검증되었다고 주장하지 않습니다. Senro가 라이브 페이지에 대해 스위트를 실행해야 합니다.

출력 규칙

  • tests 배열이 있는 하나의 JSON 객체를 작성합니다.
  • 테스트 이름은 간결하게 70자 미만으로 유지합니다.
  • 자연스러운 사용자 요청을 작성합니다. 테스트하는 동작에 필수적인 경우에만 기술적 세부 사항을 포함합니다.
  • 소스가 지원하는 경우 대화 모드, 평가 유형, 여정 복잡성을 다양하게 합니다. 명시적 요청에는 스크립트 대화를, 설명이나 다중 턴 결정에는 시뮬레이션 대화를 사용합니다. 유용한 커버리지를 추가하지 않는 경우 다양성을 강제하지 않습니다.
  • 스크립트 테스트에는 정확히 하나의 초기 사용자 메시지를 제공합니다.
  • 시뮬레이션 테스트에는 빈 작성 메시지 목록과 작성된 후속 메시지 없이 제공합니다.
  • 모든 테스트에 목표, 필수 예상 호출, 또는 페이지 확인이 있도록 보장합니다.
  • 성공적인 결과에서 에이전트가 달성해야 할 것을 설명합니다. 필요한 호출과 인수에는 도구 호출 기대치를, 최종 페이지 상태에는 페이지 확인을 사용합니다. 여러 유효한 경로가 존재하는 경우 결과에서 구현 경로를 규정하지 않습니다.
  • 설정 호출은 구체적으로 유지합니다. 설정 인수에 매처 연산자를 절대 넣지 않습니다.
  • 페이지 확인을 위해 소스의 안정적인 선택자를 사용합니다.
  • 안정적인 최종 페이지 상태를 어서션하고, 이후 유효한 작업이 지울 수 있는 임시 메시지는 어서션하지 않습니다. 지원되는 도구 호출 및 결과 확인 또는 성공적인 결과를 통해 중간 동작을 검증합니다.
  • 도구 호출 평가가 비활성화된 경우 expectedCall: null을 사용합니다. 도구 호출을 금지하지 않습니다.
  • 스위트를 생성하는 동안 웹사이트 소스를 수정하지 않습니다.
  • 비밀, 자격 증명, 또는 개인 고객 데이터를 스위트에 작성하지 않습니다.

참고 자료

관련 스킬