Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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 <branch> --title "<concise title>" --body-file /tmp/<branch>-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/<branch>/`. Write it to `/tmp/<branch>-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/<case>/`. Write it to `/tmp/<branch>-pr-body.md`.
Original file line number Diff line number Diff line change
Expand Up @@ -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/<case>/`.
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 |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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=<page> NERO_SCREENSHOT_OUT=<file>` opens that top-level page, saves a PNG, and quits; an unknown page logs "unknown page". Save shots to `/tmp/nero-shots/<branch>/`, 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/<case>/`. `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

Expand Down
Loading