From 97f20b89085e83afd018c0d8a87063e8faa59bbf Mon Sep 17 00:00:00 2001 From: Jeffrey Date: Thu, 8 Oct 2026 17:09:50 -0400 Subject: [PATCH] nero-experimental: point UI QA at Playwright instead of the screenshot tool --- .../nero-experimental/.claude/skills/open-pr/SKILL.md | 2 +- .../nero-experimental/.claude/skills/review/SKILL.md | 2 +- .../nero/workspaces/nero-experimental/CLAUDE.md | 10 +++++++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/software/application-software/nero/workspaces/nero-experimental/.claude/skills/open-pr/SKILL.md b/software/application-software/nero/workspaces/nero-experimental/.claude/skills/open-pr/SKILL.md index 4605381..e350f7a 100644 --- a/software/application-software/nero/workspaces/nero-experimental/.claude/skills/open-pr/SKILL.md +++ b/software/application-software/nero/workspaces/nero-experimental/.claude/skills/open-pr/SKILL.md @@ -4,4 +4,4 @@ description: Run pre-PR checks, push the branch, and open a draft pull request --- From the branch's worktree: stop if the tree is dirty, check that the commits since `origin/develop` follow the commit format, run `clang-format --dry-run --Werror` on the changed C++ files and stop on any error, and check that `origin/develop` merges without conflicts. Then push and run `gh pr create --draft --base develop --head --title "" --body-file /tmp/-pr-body.md --assignee @me`, and report the URL. -**PR body:** fill `.github/pull_request_template.md` from the diff. Changes gets 1–3 dense sentences on what landed and the key design choice, with no filler. Use at most three backticks in the body. Remove sections that don't apply, check off the Checklist, and end with `Closes #{ticket}`. For UI changes put `_screenshot pending_` and remind the user to drag-drop screenshots from `/tmp/nero-shots//`. Write it to `/tmp/-pr-body.md`. +**PR body:** fill `.github/pull_request_template.md` from the diff. Changes gets 1–3 dense sentences on what landed and the key design choice, with no filler. Use at most three backticks in the body. Remove sections that don't apply, check off the Checklist, and end with `Closes #{ticket}`. For UI changes put `_screenshot pending_` and remind the user to drag-drop screenshots from `playwright/test-results//`. Write it to `/tmp/-pr-body.md`. diff --git a/software/application-software/nero/workspaces/nero-experimental/.claude/skills/review/SKILL.md b/software/application-software/nero/workspaces/nero-experimental/.claude/skills/review/SKILL.md index 69b90e2..2c2b2d5 100644 --- a/software/application-software/nero/workspaces/nero-experimental/.claude/skills/review/SKILL.md +++ b/software/application-software/nero/workspaces/nero-experimental/.claude/skills/review/SKILL.md @@ -10,7 +10,7 @@ description: Review changes since a fixed point (commit, branch, tag, or merge-b - Bugs: correctness, edge cases, error handling. - Standards: violated rules by file, dead code, speculative abstraction, and comments that break the comment rule. Skip what formatters and linters enforce. - Spec: missing or partial done criteria, anything from Non-goals, and wrong behavior. Quote the spec line. - - UI QA, only if QML or a page changed: build, run against mock telemetry, capture each changed page with the screenshot tool, and inspect the shots. + - UI QA, only if QML or a page changed: in `playwright/`, add or update a case for each changed page, run `npm test`, and inspect `test-results//`. 5. Report one table, most severe first, and end with the finding count. Note "UI QA: skipped, no UI change" when it applies. | Severity | Axis | File:line | Problem | Fix | diff --git a/software/application-software/nero/workspaces/nero-experimental/CLAUDE.md b/software/application-software/nero/workspaces/nero-experimental/CLAUDE.md index ab0968f..e6282b0 100644 --- a/software/application-software/nero/workspaces/nero-experimental/CLAUDE.md +++ b/software/application-software/nero/workspaces/nero-experimental/CLAUDE.md @@ -30,12 +30,16 @@ Nero's `develop` is checked out at `worktrees/nero/develop/`. Paths below are re - Build: `build-scripts/compile-qt-linux.sh`, or the `-mac.sh` or `-windows.bat` variant. The scripts expect Qt 6.8.3 under `~/Qt/6.8.3/`. - Mock telemetry: `docker compose -f compose.nero-dev.yml up -d`, and `down` when done. -- There are no unit tests. Verify by building, running against mock telemetry, and taking screenshots. +- There are no unit tests. Verify UI changes with Playwright (below). - Format C++ with `git ls-files "*.cpp" "*.h" ":!deps/*" | xargs clang-format -i`; CI checks it. Format QML with the Qt install's `qmlformat -i`. -## Screenshots +## Playwright -The app's dev screenshot tool is off unless its env vars are set. `NERO_SCREENSHOT= NERO_SCREENSHOT_OUT=` opens that top-level page, saves a PNG, and quits; an unknown page logs "unknown page". Save shots to `/tmp/nero-shots//`, never in the repo. +UI QA runs a dev-only WASM build in Chrome over the Docker mock. From `playwright/`: + +- `npm test` checks the cases in `tests/screens.spec.ts` and saves each screen to `test-results//`. `npm run update` records baselines, which are local, so run it first in a new worktree. +- Cases inject only what the mock lacks or what they test, through `window.nero.publish`. Add one per changed page. +- To drive it live, run `npm run view` in the background and use the `playwright-cdp` MCP. ## Workflow