Community코딩 & 개발github.com

테스트 최적화

OpenClaw의 느린 테스트, 임포트, 잘못 배치된 커버리지, CI wall time을 커버리지 저하 없이 최적화합니다.

테스트 최적화란 무엇인가요?

이 스킬은 OpenClaw 프로젝트의 느린 테스트와 CI 병목 현상을 생산성 저하 없이 해결하는 전문 도구입니다. 테스트 셔드 추가나 어설션 건너뛰기 같은 임시방편이 아닌, 실제 런타임 속도 향상을 목표로 합니다. 주로 Vitest 기반 테스트 환경을 대상으로 하며, pnpm 스크립트와 GitHub Actions CI를 지원합니다. 이 스킬은 성능 분석부터 시작해(그룹별 전체 순위 측정, 파일별 wall time 측정, 임포트 기간 분석), 핫스팟을 식별한 후 임포트 리팩터링, 모듈 리셋 최소화, 게이트웨이/서버/클라이언트 코드 재사용 등 생산 코드 품질을 유지하는 방식으로 최적화합니다. 각 변경 후 동일한 벤치마크를 재실행하여 before/after 시간과 RSS를 기록하고, CI 상태를 확인하며 점진적으로 커밋합니다. 최종적으로 커밋, 성능 비교, 실행된 게이트, CI 상태, 남은 최적화 대상 목록을 출력합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/.agents/skills/optimizetests

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

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

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

문서

테스트 최적화은(는) 무엇을 하나요?

목표: 커버리지를 유지하면서 실제 OpenClaw 테스트/런타임 속도 향상. 주요 해결책으로 셔드 추가, 어설션 건너뛰기, 게이트 약화 또는 러너 플래그 조정은 하지 마세요.

실행 절차

  1. docs/help/testing.md, docs/ci.md, 그리고 편집할 서브트리의 관련 AGENTS.md 파일을 읽으세요.
  2. 편집 전에 증거를 확보하세요:
    • 전체 순위: pnpm test:perf:groups --full-suite --allow-failures --output .artifacts/test-perf/<name>.json
    • 대상 파일: timeout 240 /usr/bin/time -l pnpm test <file> --maxWorkers=1 --reporter=verbose
    • 임포트 의심: OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 추가
  3. 수익이 높은 핫스팟부터 공략하세요:
    • 넓은 배럴 또는 핫 테스트에서의 importActual()
    • 테스트별 vi.resetModules() 및 새로운 임포트
    • 재설정/재사용이 동일한 동작을 입증하는 비싼 게이트웨이/서버/클라이언트 설정
    • 확장 소유 동작을 어설션하는 코어 테스트
    • 중복된 픽스처 생성 또는 계약 어설션
  4. 생산 품질 수정을 선호하세요:
    • 광범위한 목보다는 좁은 런타임 경계
    • 정적 파싱/메타데이터를 위한 순수 헬퍼
    • 모듈 리셋보다는 주입된 의존성
    • 번들된 플러그인/프로바이더/채널 동작을 위한 확장 소유 테스트
  5. 각 변경 후, 동일한 벤치마크와 입증용 테스트 레인을 재실행하세요. 가능한 경우 before/after wall time, Vitest 지속 시간, 최대 RSS를 기록하세요.
  6. pnpm check:changed를 실행하세요. 영향을 받는 표면이 필요할 경우 더 넓은 게이트(pnpm check, pnpm test, pnpm build)를 실행하세요.
  7. scripts/committer "<conventional message>" <paths...>로 범위 변경을 커밋하세요. 요청 시 푸시하세요. CI가 빨간색이면 gh run list/view로 검사하고, 수정하고, 푸시하고, 현재 CI가 초록색이거나 블로커가 관련 없는 것으로 입증될 때까지 반복하세요.

출력

푸시된 커밋, before/after 타이밍, 실행된 게이트, 현재 CI 상태, 그리고 별도 최적화가 필요한 남은 테일 레인으로 마무리하세요.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Grok Build, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills when explicitly requested; install, verify, update, uninstall, publish, or sync skills.

관련 스킬