Best practices for making a meaningful contribution to Stagehand
evals
branch. We don’t let external contributors run our CI via GitHub Actions to prevent spam and misuse. If your contribution passes an initial screen, we’ll run our evals on it
npm run lint
) - Runs prettier
and eslint
. If this fails, you can most likely run npm run format
to fix some simple linting errors.npm run build
) - Lints and builds TS → JS in dist/
via tsup
npm run e2e
) - These are deterministic end-to-end Playwright tests to ensure the integrity of basic Playwright functionality of stagehand.page
and stagehand.context
as well as compatibility with the Browserbase APInpm run evals category combination
) - This runs AI-based end-to-end tests using combinations of act
, extract
, and observe
act
, extract
, or observe
itself, we might also run specific act/extract/observe evals to ensure existing functionality doesn’t significantly drop.
evals
, unfortunately the original contributor can’t make any further changes. The internal Stagehand team will be responsible for cleaning up the code and bringing it into main.
evals/tasks
as someTask.ts
evals.config.json
with default category combination
(or act/extract/observe if you’re only testing act/extract/observe).npx changeset
in TS or uvx changeset
in Python to add a changeset that will directly reflect in the CHANGELOG
in the upcoming release.
patch
- no net new functionality to an end-userminor
- some net new functionality to an end-user (new function parameter, new exposed type, etc.)major
- you shouldn’t be committing a major change