Architecture

Modular packages: core contracts, runner orchestration, browser adaptor, Keys adaptor, CLI, GitHub Action—commodity boundaries vs Restormel-owned test contracts.

Target package shape (from the technical architecture note):

@restormel/testing-core — schemas, verdict model, run contract
@restormel/testing-config — load + MVP validate rules
@restormel/testing-runner — suite execution, retries, Web Vitals + optional Lighthouse structured checks
@restormel/testing-browser-playwright
@restormel/testing-keys-adapter
@restormel/testing-report — report.json, Markdown, JUnit, summaries
@restormel/testing-cli
packages/testing-github-action — composite workflow wrapper

Commodity: Playwright, Lighthouse (for lighthouse:* / lh:* checks), GitHub Actions, OTEL exporters.
Differentiated: goal/suite/run/verdict contracts, Keys-aware execution, workflow-aware failure summaries.
Adjacent / later: hosted control plane, team dashboards, heavy governance UI.

Native device runs (public roadmap): Config validation already reserves a native goal type for Maestro-, Appium-, or XCTest-style execution. MVP ships browser (Playwright) only; native adaptors are not production-ready in 0.1.x. Planned phases: (1) contract + report shape parity with browser goals, (2) first adaptor behind a feature flag, (3) CI recipes for device farms or self-hosted runners. Track shipped packages and changelogs in the monorepo; this page is the high-level promise, not a release guarantee.

Authoritative detail: docs/testing/restormel-testing-technical-architecture.md.

How it fits together · Walkthrough · Performance goals