Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Test Cherry Studio PRs by resolving and checking out a PR, statically inspecting its changes, running interactive UI tests against a safely tracked Electron instance through CDP, producing a structured report, cleaning up only the owned test instance, and restoring the original branch.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | -20% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 25% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -18% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 11% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 111% | 0% |
Use this workflow for a bounded PR test. Use cherry-electron-dev for ongoing implementation or debugging in the current checkout.
gh, pnpm, and installed project dependencies.agent-browser for UI control.Electron Instance Management and select its ephemeral policy.
launch, replacement, shutdown, tracking, and troubleshooting.
$ARGUMENTS may contain a PR number, PR URL, latest/recent, or nothing.
If no PR is specified, list recent PRs and ask the user to choose unless they requested the latest:
bashgh pr list --repo CherryHQ/cherry-studio --state open --limit 10 \ --json number,title,author,createdAt,headRefName,changedFiles
Record the current branch for restoration, inspect the PR, then check it out:
bashgit status --short git branch --show-current gh pr view <NUMBER> --json title,body,author,headRefName,files gh pr checkout <NUMBER>
Read the changed files and nearby instructions. Record the exact checked-out HEAD.
Run static analysis while the app starts when both can proceed independently.
For static analysis:
bashpnpm typecheck
Also check:
console.log instead of loggerServiceFor Electron:
the checked-out PR HEAD.
ownership. Never reclassify a persistent instance as ephemeral.
ephemeral, agent-owned instance with an isolatedCS_DEV_USER_DATA_SUFFIX, such as PR-<NUMBER>.
pr-test:<NUMBER> launch purpose in instance.json.
Do not use broad process or port cleanup.
Bind the controller to the exact target returned by the shared reference. Never navigate to a guessed root URL or select a target by index.
Build test cases from the PR description and changed files:
Consider UI rendering, interactions, persistence, light/dark themes, relevant window sizes, i18n, empty states, and rapid interaction only when in scope.
Store screenshots and the report under /tmp/pr-<NUMBER>/:
bashmkdir -p /tmp/pr-<NUMBER>
If an isolated profile shows the migration wizard or splash, follow the shared troubleshooting guidance and startup logs. Do not reset or force-close data.
Use the shared ephemeral finish procedure. Stop only an instance launched by this PR-test workflow whose verified record remains ephemeral, agent-owned, and scoped to pr-test:<NUMBER>. Leave every borrowed instance running. Do not stop unrelated workspaces or packaged apps.
Restore the branch recorded before checkout. If it no longer exists, resolve the repository default branch and report the fallback before switching:
bashgit checkout <ORIGINAL_BRANCH>
Save /tmp/pr-<NUMBER>/report.md and show it to the user. Match the report language to the user's language; the template uses English labels:
markdown# PR #<NUMBER> Test Report **Title**: <title> **Author**: @<author> **Branch**: <branch> **Changed files**: <count> ## Static Analysis | Check | Result | Notes | | --- | --- | --- | | TypeScript typecheck | ✅/❌ | ... | | Blocked-file check | ✅/⚠️ | ... | | Logging, i18n, and types | ✅/❌ | ... | ## UI Tests ### <Test Case> <scenario, evidence, and result>  ## Findings <findings or none> ## Conclusion - Total findings: N - Recommendation: APPROVE / REQUEST_CHANGES / COMMENT
Do not post the report or submit a GitHub review unless the user explicitly asks.
Other measured skills in the registry, with their headline benchmark lift.