본문으로 건너뛰기
cccskills
무료GitHub에 공개

drive-client-playtest

Launch and drive an isolated World of Warcraft 1.12.1 client against a local Thistle Tea server, including keyboard input, left/right clicks, camera drags, screenshots, real instance entry, log observation, and Tidewave runtime probes. Use for real-client gameplay acceptance, client-sensitive protocol or movement verification, reproducing live bugs, checking visibility and instance isolation, or validating a scripted content chain beyond automated tests.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(5)

  • SKILL.md4.9 KB
  • agents/openai.yaml233 B
  • references/thistle-tea.md8.0 KB
  • scripts/test-cleanup4.3 KB
  • scripts/wow-client16.4 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Drive Client Playtest

Exercise the genuine build-5875 client without disturbing the user's desktop, Steam session, or ordinary Wine prefixes. Treat client presentation, authoritative server state, and logs as separate evidence surfaces.

Prepare

Read references/thistle-tea.md before testing instance routing, timed scripts, or live BEAM state.

Define the exact acceptance facts before launching anything: character, content chain, initial and final world, expected position or packets, timing, copy isolation, and forbidden warnings. Prefer a fresh server for stateful instance or EventAI scenarios.

Start the server in a retained PTY:

mix run --no-halt

Keep SPEC.md and unrelated worktree changes untouched.

Launch an isolated client

Use the bundled helper directly. It enters a one-off Nix shell when the selected renderer's tools are unavailable.

.agents/skills/drive-client-playtest/scripts/wow-client launch

Record the printed session directory. Pass it to every later command:

playtest_session=/home/pikdum/.cache/thistle-wow-playtest.example
.agents/skills/drive-client-playtest/scripts/wow-client status "$playtest_session"
.agents/skills/drive-client-playtest/scripts/wow-client login-debug "$playtest_session"

The launcher creates a new Wine prefix, a private headless Gamescope/Xwayland display, and a dedicated systemd user service. GPU rendering is the default. Check renderer.log in the session directory for the selected renderer. Use THISTLE_PLAYTEST_RENDERER=software to explicitly select Xvfb and software OpenGL when needed. Never point a playtest at an existing prefix or the user's active display.

Drive the client

Prefer semantic keyboard actions and stable UI frames. Capture a screenshot before using uncertain coordinates.

.agents/skills/drive-client-playtest/scripts/wow-client chat "$playtest_session" ".instance info"
.agents/skills/drive-client-playtest/scripts/wow-client key "$playtest_session" w
.agents/skills/drive-client-playtest/scripts/wow-client click "$playtest_session" right 650 430
.agents/skills/drive-client-playtest/scripts/wow-client click "$playtest_session" left 130 353
.agents/skills/drive-client-playtest/scripts/wow-client drag "$playtest_session" right 640 360 790 330
.agents/skills/drive-client-playtest/scripts/wow-client capture "$playtest_session" before-action

Coordinates are relative to the fixed 1280x720 client window. Recheck screenshots whenever the UI state changes. Use /target Name and the fixed target frame when a world model moves unpredictably.

Verify the real path

Enter instances through the actual area trigger. Do not replace a required entry lifecycle with .go ... <instance-map-id>. Once inside a copy, omit the optional map argument from .go xyz so the current WorldRef is retained.

Use client diagnostics such as .instance info, .instance data, .guid, and .debug position <guid>. Correlate them with server logs and, when necessary, small Tidewave reads of the running BEAM. Do not add mutation commands merely to make acceptance easy.

For timed transitions, start a read-only sampler before triggering the client action. Capture the first authoritative change rather than sampling after a subsequent scripted movement has already begun.

Prove all relevant layers:

  • the real client sent the intended action and displayed the result;
  • the authoritative entity owner retained the expected world and state;
  • projections, observers, and other instance copies behaved correctly;
  • no owner, network, visibility, movement, or unsupported-command errors appeared.

Finish

Stop the helper-owned session while retaining logs and screenshots:

.agents/skills/drive-client-playtest/scripts/wow-client stop "$playtest_session"

Stop the retained server PTY. Keep evidence until the result is recorded. Trash the exact helper-owned session directory only after it is no longer needed; never clean a broad cache or temporary root.

Cleanup must go through the session's recorded systemd unit and matching invocation ID. The helper stops the entire owned cgroup, including detached Wine children. Do not use broad Wine, Proton, Steam, or user-session kill commands. Legacy sessions without ownership records require individual process inspection; do not substitute a process-name match. See references/thistle-tea.md for ownership checks and helper validation.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Implement Thistle Tea CMSG_* client messages following our architecture patterns. Use this when asked to implement a new message or you need to use one that isn't implemented yet.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

pikdum/thistle_tea2382026년 10월 11일 업데이트

Implement Thistle Tea SMSG_* server messages following our architecture patterns. Use this when asked to implement a new message or you need to use one that isn't implemented yet.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

pikdum/thistle_tea2382026년 10월 11일 업데이트

pikdum의 스킬 모두 보기

이 스킬의 문제 신고