docs(rfcs): RFC 0002 — cross-browser screenshot baseline storage#112
Merged
PAMulligan merged 1 commit intoJul 1, 2026
Merged
Conversation
Decide the baseline-storage strategy for the pipeline's cross-browser (Firefox/WebKit) phase, which today captures screenshots but has no committed baseline to diff against — so it only proves rendering did not throw. Decision: - Default backend = commit baselines to the repo (ratifies the current .gitignore behavior), extended to firefox/webkit; a `storage: "lfs"` opt-in flag handles large baseline sets without taxing small projects. - Pluggable `visualBaselines.backend` (commit | ci-artifact | service) behind a uniform adapter contract, so teams can move to CI artifacts or Chromatic/Percy via config without forking — no mandatory paid dependency. - Determinism precondition: capture in a pinned Playwright container and verify per-baseline provenance, since Firefox/WebKit render differently across OSes and no storage backend works without it. Decision-only per #85 (AC: document in docs/rfcs/, track implementation as a follow-up issue). Implementation is decomposed in #111 and gated on this RFC's acceptance. Closes #85 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds RFC 0002 — Cross-Browser Screenshot Baseline Storage (Proposed) and
registers it in the RFC index. This is a decision / RFC-only PR — no pipeline
code changes.
Resolves the decision issue #85: Phase 7 captures Firefox/WebKit screenshots but
has no committed baseline to diff against, so it only proves rendering didn't throw.
Decision
.gitignore:108–113already does, extended to
firefox/webkit. A committed baseline is the onlyoption that stays versioned with the code and reviewable in the PR diff.
A
storage: "lfs"flag handles large baseline sets without taxing smallprojects with
git lfs install+ LFS quotas.visualBaselines.backend(commit|ci-artifact|service)behind a uniform adapter contract — so a team can move to CI-artifact comparison
or Chromatic/Percy by config, without forking. Mirrors the renderer /
agent-plugin registries. No mandatory paid dependency.
per-baseline provenance. Firefox/WebKit render differently across OSes, so no
storage backend is trustworthy without this. This is why the four options in Decide on cross-browser screenshot baseline storage #85,
taken alone, don't fully solve the problem.
Full reasoning, config schema, adapter contract, alternatives, phasing, and open
questions are in the RFC.
Why this shape
Aurelius is a framework repo with no app of its own under visual test — baselines
are artifacts of the downstream generated app. So the RFC decides what the
framework ships as the default, keeping its self-hosted, offline, zero-paid-
dependency posture while leaving richer backends one config key away.
Acceptance criteria (#85)
docs/rfcs/→0002-cross-browser-screenshot-baseline-storage.mdFor the reviewer
Per
docs/rfcs/README.md, merging this PR accepts the RFC. On merge, pleaseflip the Status row
Proposed → Acceptedand fill §12 (decision + approver/date).Implementation then proceeds under #111.
Closes #85
🤖 Generated with Claude Code