pr-screenshots

GitHub

用于为World of ClaudeCraft的PR捕获视觉变更的前后对比截图。支持桌面与移动端,自动识别变更区域并生成截图至docs/screenshots,附带Puppeteer陷阱规避指南。

.claude/skills/pr-screenshots/SKILL.md levy-street/world-of-claudecraft

Trigger Scenarios

涉及渲染、HUD、CSS等视觉变更的PR PR模板要求提供截图时 请求对游戏进行审查或对比截图时

Install

npx skills add levy-street/world-of-claudecraft --skill pr-screenshots -g -y
More Options

Non-standard path

npx skills add https://github.com/levy-street/world-of-claudecraft/tree/main/.claude/skills/pr-screenshots -g -y

Use without installing

npx skills use levy-street/world-of-claudecraft@pr-screenshots

指定 Agent (Claude Code)

npx skills add levy-street/world-of-claudecraft --skill pr-screenshots -a claude-code -g -y

安装 repo 全部 skill

npx skills add levy-street/world-of-claudecraft --all -g -y

预览 repo 内 skill

npx skills add levy-street/world-of-claudecraft --list

SKILL.md

Frontmatter
{
    "name": "pr-screenshots",
    "description": "Capture before\/after screenshots for a World of ClaudeCraft PR (desktop and mobile), commit them under docs\/screenshots, and reference them from the PR body. Use when a change is visual (render, HUD, CSS, content models, windows), when the PR template's screenshot requirement applies, or when asked to screenshot the game for a review or comparison. Covers the change-aware capture tooling, the before\/after protocol, and the known puppeteer\/CDP traps.",
    "user-invocable": true
}

PR screenshots

The repo rule (root CLAUDE.md): a visual change ships with before/after screenshots, desktop and mobile where relevant, committed under docs/screenshots/ and referenced from the PR body. This skill is the capture recipe.

1. Use the change-aware tooling first

With npm run dev running (serves :5173):

git diff <base>...HEAD > /tmp/pr.diff
BROWSER_PATH=/path/to/chrome DIFF_FILE=/tmp/pr.diff SHOTS_DIR=pr-shots \
  node scripts/pr_screenshots.mjs

scripts/pr_screenshots.mjs drives the OFFLINE client through the shared entry flow (scripts/enter_offline_game.mjs, which handles the intro overlay that otherwise hides #ui) and decides WHAT to shoot from the diff: specific windows via the target table, the generic desktop/mobile HUD for broad visual changes, and nothing for non-visual diffs.

Adding coverage is one entry in scripts/pr_shot_targets.mjs, not a new script. Each target maps changed-path substrings to a bring-up recipe (driving window.__game) and a clip region. Only write a bespoke scripts/<thing>_shot.mjs when the flow genuinely cannot be a target entry (for example an online-only or multi-client scene).

2. Before/after protocol

  1. Capture AFTER on your branch.
  2. git stash or check out the base commit in a scratch worktree, capture BEFORE with the same script and targets, restore.
  3. The Vite dev client picks up source changes live, but npm run server bundles at START: after any branch flip, restart the server before online captures or you will shoot a stale bundle.
  4. Move the keepers to docs/screenshots/<slug>/before-*.png / after-*.png, commit them, and reference them from the PR body with repo-relative links.
  5. For screenshots in a REVIEW COMMENT on someone else's PR: GitHub user-attachments upload URLs only work from the web UI. Push the PNGs to a gist and embed the gist's raw URLs instead.

3. Traps that have burned sessions before

  • Viewport sizing: after page.setViewport, window.innerWidth can be stale. Use raw CDP Emulation.setDeviceMetricsOverride for exact metrics, and remember CDP Page.captureScreenshot shoots the WINDOW, not the viewport: clip explicitly.
  • page.evaluate under tsx: tsx's keepNames injects __name and breaks nested functions inside evaluate callbacks. Pass string-form bodies to evaluateOnNewDocument/evaluate when a script runs under tsx.
  • window.__game proves reachability only to the window boundary. For a claim about real behavior, drive the actual bound key or click, not the debug hook.
  • Mobile is landscape-only in-game on the web client: use landscape device metrics for mobile HUD shots (the shell/guide/admin pages allow portrait).
  • Dev commands: captures that teleport, level, or grant items need a server started with ALLOW_DEV_COMMANDS=1 (dev only, never production).

Version History

  • 2edc3ac Current 2026-07-19 18:52

Same Skill Collection

.agents/skills/woc-codex-audit/SKILL.md
.agents/skills/woc-extract-and-test/SKILL.md
.agents/skills/woc-feature-plan/SKILL.md
.agents/skills/woc-file-issue/SKILL.md
.agents/skills/woc-qa/SKILL.md
.agents/skills/woc-release-malware-audit/SKILL.md
.agents/skills/woc-release-merge-audit/SKILL.md
.agents/skills/woc-review-pr/SKILL.md
.claude/skills/feature-plan/SKILL.md
.claude/skills/file-issue/SKILL.md
.claude/skills/qa/SKILL.md
.claude/skills/extract-and-test/SKILL.md
.claude/skills/i18n-locale-fill/SKILL.md
.claude/skills/release-malware-audit/SKILL.md
.claude/skills/review-pr/SKILL.md

Metadata

Files
0
Version
2edc3ac
Hash
d1ae4d35
Indexed
2026-07-19 18:52

ホーム - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-07-20 15:31
浙ICP备14020137号-1 $お客様$