代码所有者与领域专家
所有贡献必须获得代码所有者的明确批准。Stagehand 官方指定的代码所有者如下: 特别感谢 Jeremy Press、Navid Pour 以及 所有贡献者 帮助 Stagehand 成为最优秀的浏览器自动化框架。 欢迎随时通过 公开 Slack 频道 联系上述任何成员通用工作流程
成为 我们敬爱的贡献者之一!- 在开始前讨论你的贡献提案。若不事先沟通,你可能会面临辛苦付出的成果被完全弃用的风险。你可以通过 Slack 私信 Miguel 预约一对一通话。
- 提交 Pull Request。创建本仓库的分支,并按照 GitHub 创建 Pull Request 的指南 操作。这将允许我们的团队审核你的贡献并留下反馈。
- 等待审核。我们会尽快处理你的贡献。若 2-3 天后仍未收到任何回复,可通过 Slack 私信 Miguel。
-
合并至
evals分支。为防止滥用,我们不允许外部贡献者 通过 GitHub Actions 运行我们的 CI。若你的贡献通过初步筛选,我们将为其运行评估测试:- 默认情况下,所有 PR 都会运行以下测试(你也可以在仓库源码中执行):
- 代码检查 (
npm run lint) - 运行prettier和eslint。若失败,通常执行npm run format即可修复简单格式问题 - 构建 (
npm run build) - 通过tsup执行 TS → JS 的代码检查和构建,输出至dist/目录 - 端到端测试 (
npm run e2e) - 使用 Playwright 运行确定性端到端测试,确保stagehand.page和stagehand.context的基础功能完整性以及与 Browserbase API 的兼容性 - 组合测试 (
npm run evals category combination) - 运行基于 AI 的端到端测试,组合测试act、extract和observe功能
- 代码检查 (
- 若修改涉及
act、extract或observe核心功能,我们可能额外运行专项评估以确保现有功能不会显著退化

- 默认情况下,所有 PR 都会运行以下测试(你也可以在仓库源码中执行):
-
代码清理并合并至主分支。进入
evals分支后,原贡献者将无法继续修改。Stagehand 内部团队将负责代码清理并合并至主分支。
贡献指南
-
使用草稿PR。如果您的PR仍在开发中,请先将其转为草稿状态(操作见下图),待准备就绪后再标记为待审/添加审阅者。这有助于减少审阅队列中的杂乱条目。

-
提供可复现的测试方案。包含评估用例(推荐)或示例。若无法运行任何专门体现您贡献的测试内容,我们将无法合并PR。
- 在
evals/tasks目录创建脚本文件someTask.ts - 将脚本添加到
evals.config.json,默认分类设为combination(若仅测试act/extract/observe功能则选择对应分类)
- 在
-
添加变更集。在TS项目中运行
npx changeset或在Python项目中运行uvx changeset,变更将直接体现在下个版本的CHANGELOG中。patch- 不涉及面向终端用户的新功能minor- 包含面向终端用户的新功能(如新增函数参数、暴露新类型等)major- 您不应提交重大变更

