genclass-dev[bot] is installed
One step is left: a workflow file that runs your Playwright tests under GenClass. Until race files were read for a repository once, the app stays silent there.
This signs you in to GenClass with your GitHub account, free, and makes an account if you have none. You then see each repository the app is on and what the app is doing there. Your GitHub token is used for that question and not kept. With a GenClass account already, sign in to it and choose Connect GitHub. Reviews need no account.
In short
- What it does: on a pull request it posts one check and, when something is flagged, one comment: a request that left twice, an older response applied over a newer one, a write that was overwritten, each with its test, its seeds and the evidence line.
- What it reads: the race files your workflow uploads, never your source code. It cannot read, clone or change your code, branches, workflows, secrets or settings, and it never opens a pull request.
- What installing changed: nothing. Nothing is written when the app is installed, and the GenClass runtime is not added to your app or your repositories: it runs only on the pages your tests open in that workflow's run.
- What it costs: public repositories are free, for every account and organization. Private repositories come with Team or Enterprise.
- How to remove it: uninstall it in your GitHub settings. Uninstalling the app deletes what was kept for it at once.
The one step left, with no change to your tests
Add one workflow file, .github/workflows/genclass.yml. It runs your existing Playwright suite under GenClass in a job of its own that is allowed to fail, and uploads the race files. The button opens GitHub's new-file editor in a new tab with the file filled in; you review it and commit it there.
The address is built in this page: what you type here is not sent to GenClass. The same file is in the GenClass repository, workflows/genclass.yml.
Other ways to set it up, settings and commands
Or in your own e2e job
Use the fixture in your Playwright tests
The fixture puts the GenClass runtime on each page under test, in observe mode: it reports and never holds, delays or changes anything your app does. With chaos on, each seed delays and reorders responses differently.
Install
npm i -D @genclass/playwright @genclass/runtime@beta
Configure
// playwright.config.ts
use: { genclass: { chaos: { seed: 1, delayMs: [0, 600] } } },
// in your specs
import { test, expect } from "@genclass/playwright/fixture";Upload the race files from your workflow
The fixture writes one small JSON file per test and seed to test-results/genclass. genclass-dev[bot] reads the artifact when the workflow run finishes, also for pull requests from forks, whose own token cannot comment.
In the job that runs Playwright
- run: npx playwright test --repeat-each 2
- uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
with:
name: genclass-races
path: test-results/genclass
retention-days: 7Open a pull request
The GenClass check appears on its commits. When something is flagged, one comment lists each finding with its test, its seeds and the evidence line; it is edited in place on later pushes. Reply @genclass-dev help on the pull request for the commands.
Optional
- Settings: add
.github/genclass.ymlon the default branch. A pull request cannot change how it is reviewed. - Production findings: link the repository to a GenClass app and reviews also list that app's findings on the pages a pull request touches.
- Coding agents: a workflow can pick up
@genclass-dev fixand run your agent with@genclass/mcpin your own CI, with your own key.
Settings file
# .github/genclass.yml (optional; these are the defaults) reviews: auto: true # review each pull request when it opens and on every push drafts: false comment: findings # findings | always | never check: fail_on: never # never | reproducible | any inline: true min_seeds: 2 artifact: genclass # artifacts whose name starts with this are read commands: true issues: never # never | merge
The guide has every setting and command.