Electron Stagewrightdocs

Contributing to Electron Stagewright

This project is pre-1.0. The core server can already launch and drive real Electron apps, and first-party plugin packages cover accessibility audits, visual baselines, traces, IPC, network capture, storage, virtual time, native UI, and production checks. Packages are published to npm; feedback through GitHub Discussions and Issues still shapes the next capabilities and documentation.

How we work

Your first contribution

  1. Fork the repo and create a branch from main.
  2. Make your change; keep the diff reasonably scoped.
  3. Run pnpm verify (lint + typecheck + test + build + format check) until it is green.
  4. Write Conventional Commits messages.
  5. Open a pull request against main with a clear description of what changed and why.

If you are new to the codebase, the most useful first step is often opening a discussion with your use case (see above) before writing code.

Local development

git clone https://github.com/electron-stagewright/electron-stagewright.git
cd electron-stagewright

# Enable Corepack-managed pnpm
corepack enable

pnpm install
pnpm verify  # lint + typecheck + test + build + format check

Dependency updates

Renovate opens a weekly grouped pull request for non-breaking npm maintenance; updates are never automergeable and still require the normal review and CI gates. Major updates are separate, require Dependency Dashboard approval, and must not mix platform upgrades in one pull request. Before merging a major Electron, Playwright, TypeScript, or framework update, run pnpm verify, pnpm matrix, STAGEWRIGHT_E2E=1 pnpm test, and pnpm package:smoke against the proposed version.

Project structure

electron-stagewright/
├── examples/                 # Example Electron apps + scripted scenarios
├── packages/
│   └── core/                 # @electron-stagewright/core — MCP server
│       └── scripts/          # Package-local build helpers
└── .github/workflows/        # CI

Future plugin packages live under packages/plugin-*/ and publish as @electron-stagewright/plugin-*.

Code style

Public-repo content policy — no internal-planning references

This repository ships only content that is intended to remain public and stable. Internal planning vocabulary stays out of the codebase, documentation, commit messages, PR descriptions, and code comments. Concretely:

This policy keeps the public artifact legible to people who arrive without prior context, and avoids leaking ephemeral planning vocabulary that loses meaning the moment the milestone closes.

Reporting issues

Use the issue templates. For security vulnerabilities, see SECURITY.md — do not open a public issue.

License

By contributing, you agree your contributions are licensed under MIT (see LICENSE at the repo root).