跳到正文
cccskills
免费在 GitHub 公开

playwright

Use when the user wants to inspect a Playwright `trace.zip` (actions, screenshots, console errors, network). Triggers on "examine trace", "explore trace", "open trace.zip", "look at the playwright trace", "что в trace.zip", "посмотри трейс", or any message attaching a `*.zip` path that looks like a Playwright trace (e.g. `trace-*.zip`, `trace.zip`).

中文简介正在准备中。当前显示原文说明。

Gram-ax/gramax星标 616(GitHub 616 + cccskills 0)
集成工具Playwright

实测评分 未实测

查看安装方法

包含的文件(2)

  • SKILL.md3.7 KB
  • scripts/extract-trace.sh2.5 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Examining a Playwright trace.zip

A Playwright trace is a zip with NDJSON event streams plus screenshots/snapshots. Never read the .zip directly — extract first, then query.

Contents of a trace.zip

FileWhat it holds
trace.trace (and optional <n>-trace.trace)NDJSON of actions, before/after/event, errors, console
trace.networkNDJSON of network requests/responses
trace.stacksBinary stack traces (rarely needed)
resources/*.jpegScreenshots captured per action
resources/*.htmlDOM snapshots

Workflow

1. Extract + summarize

Use the helper. It unzips and prints a structured summary.

./.claude/skills/explore-playwright-trace/scripts/extract-trace.sh ~/Downloads/trace-1.zip
# or specify out dir:
./.claude/skills/explore-playwright-trace/scripts/extract-trace.sh ~/Downloads/trace-1.zip /tmp/trace-1

Output includes: action breakdown, console/errors, screenshot count, top network requests, and the extraction dir.

If the helper is not available (other repo): fallback to

OUT=$(mktemp -d) && unzip -q ~/Downloads/trace-1.zip -d "$OUT" && echo "$OUT"

2. Inspect specific things

After extraction, $OUT holds the files. Use jq to drill in.

Timeline of actions:

jq -c 'select(.type == "before") | {t: .startTime, api: .apiName, params}' "$OUT"/*.trace

Failed actions with error message:

jq -c 'select(.error != null) | {api: .apiName, error: .error.message, stack: .error.stack}' "$OUT"/*.trace

Console messages (browser-side):

jq -c 'select(.type == "console") | {level: .messageType, text}' "$OUT"/*.trace

All page navigations:

jq -c 'select(.apiName == "page.goto" or .method == "navigate") | {url: (.params.url // .url), t: .startTime}' "$OUT"/*.trace

Network failures (status >= 400 or no response):

jq -c 'select(.status != null and .status >= 400) | {method, url, status}' "$OUT"/*.network

Slowest actions:

jq -s 'map(select(.type == "before" and .endTime != null) | {api: .apiName, dur: (.endTime - .startTime)}) | sort_by(-.dur) | .[:20]' "$OUT"/*.trace

3. Look at screenshots

ls "$OUT/resources/"*.jpeg | head
open "$OUT/resources/"   # macOS — opens Finder for visual scan

Each action references a screenshot by sha1 in params.snapshot / pageId. To link an action to its screenshot: grab the sha1 referenced near the action's timestamp and match resources/<sha1>.jpeg.

4. Report

Summarize for the user in this order:

  1. Verdict — passed / failed; if failed, which action.
  2. Error — exact message + the action that caused it (api, params).
  3. Console — relevant web errors/warnings.
  4. Network — failed/4xx/5xx requests, if any.
  5. Last screenshot — the path; suggest opening it.

Quote error strings exact. Do not paraphrase.

Notes

  • Some traces have multiple *.trace files (one per BrowserContext). The helper concatenates them.
  • Timestamps are unix epoch seconds (floats). Pretty-print with strftime if needed: (.startTime | strftime("%H:%M:%S")).
  • Don't dump full NDJSON to the conversation — it's huge. Always filter with jq.
  • The helper uses $TMPDIR by default; clean up with rm -rf when done if the trace was big.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

biome

免费

Use when user asks to lint with Biome, check lint warnings introduced in an MR/branch, run `lint:ref`, or read/triage large Biome diagnostic output in the Gramax project. Triggers on keywords like biome, lint, lint:ref, warnings, lint gate.

中文简介正在准备中。当前显示原文说明。

Gram-ax/gramax6162026年10月6日 更新

ci

免费

Use when running headless inside a GitLab CI job in the Gramax repo (the `ai` job). Establishes environment — repo checked out, glab/gh authenticated, what tools exist, how to read/post on GitLab, how to diagnose failed pipeline jobs. Triggers on "ci", "running in CI", "headless CI job", "ты в CI", "запущен в пайплайне".

中文简介正在准备中。当前显示原文说明。

Gram-ax/gramax6162026年10月6日 更新

e2e

免费

Use when user asks to write, create, run, or debug Playwright e2e tests in the Gramax project. Triggers on keywords like e2e, playwright, test, spec, QA.

中文简介正在准备中。当前显示原文说明。

Gram-ax/gramax6162026年10月6日 更新

Use when CI jobs are red on a Gramax branch and need diagnosing/fixing — failed pipeline, broken build/tests, flaky jobs, a job that has been red for a while, "почини пайплайн", "почини все пайплайны", "сломанные джобы", "failed CI jobs", "pipeline red", "fix the pipeline".

中文简介正在准备中。当前显示原文说明。

Gram-ax/gramax6162026年10月6日 更新

Use when creating, rewriting, OR reviewing a GitLab Merge Request in the Gramax product repo (`gramax/` → `gitlab.ics-it.ru/ics/doc-reader`). Triggers on "mr", "напиши описание MR", "опиши MR", "создай MR", "мерж реквест", "ревью MR", "проверь MR", "посмотри MR", "review MR", "review merge request", "code review for MR", "write MR description", "draft MR", "create merge request". Also pre-empts generic `/requesting-code-review`, `/code-review`, `/review` flows when target is a Gramax GitLab MR — team-convention checks (description, board link, `## Notes`) must run BEFORE code review.

中文简介正在准备中。当前显示原文说明。

Gram-ax/gramax6162026年10月6日 更新

查看 Gram-ax 的全部技能

报告此技能的问题