Skip to content

docs(rfcs): RFC 0002 — cross-browser screenshot baseline storage#112

Merged
PAMulligan merged 1 commit into
mainfrom
85-decide-on-cross-browser-screenshot-baseline-storage
Jul 1, 2026
Merged

docs(rfcs): RFC 0002 — cross-browser screenshot baseline storage#112
PAMulligan merged 1 commit into
mainfrom
85-decide-on-cross-browser-screenshot-baseline-storage

Conversation

@PAMulligan

Copy link
Copy Markdown
Collaborator

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

  • Default backend — commit to the repo, ratifying what .gitignore:108–113
    already does, extended to firefox/webkit. A committed baseline is the only
    option that stays versioned with the code and reviewable in the PR diff.
    A storage: "lfs" flag handles large baseline sets without taxing small
    projects with git lfs install + LFS quotas.
  • Pluggable 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.
  • Determinism precondition — capture in a pinned Playwright container + verify
    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)

For the reviewer

Per docs/rfcs/README.md, merging this PR accepts the RFC. On merge, please
flip the Status row Proposed → Accepted and fill §12 (decision + approver/date).
Implementation then proceeds under #111.

Closes #85

🤖 Generated with Claude Code

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>
@PAMulligan PAMulligan added this to the v2.0.0 milestone Jul 1, 2026
@PAMulligan PAMulligan added documentation Improvements or additions to documentation pipeline Figma/Canva-to-React conversion pipeline labels Jul 1, 2026
@PAMulligan PAMulligan linked an issue Jul 1, 2026 that may be closed by this pull request
2 tasks
@PAMulligan PAMulligan self-assigned this Jul 1, 2026
@PAMulligan
PAMulligan merged commit 249c267 into main Jul 1, 2026
7 checks passed
PAMulligan pushed a commit that referenced this pull request Jul 2, 2026
Maintainer approved and merged the RFC PR (#112) on 2026-07-01; per RFC
process (docs/rfcs/README.md §3) record the acceptance in the Status row,
§12 sign-off, and the RFC index. Unblocks implementation issue #111.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation pipeline Figma/Canva-to-React conversion pipeline

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Decide on cross-browser screenshot baseline storage

1 participant