Phase 2 — Queued PRs and Tiered Gates
Summary
Section titled “Summary”Phase 2 builds on the Phase 1 frontend pipeline (Amplify-branch-sync replaced by GitHub Actions deploys; see the parent Frontend Pipeline page) and addresses the next bottleneck: PR throughput, merge serialization, and post-merge release/deploy automation.
The phase introduces:
- GitHub merge queue with tiered check gates (Fast Gate on PR push, Queue Gate in
merge_group, Post-Merge automation onmain). - PR-body CHANGELOG — entries live in the PR description; an automated workflow assembles them into
CHANGELOG.mdon merge, computes the SemVer bump, validates with CLQ, and creates a GitHub Release. - Deploy Frontend quality gate — Extended E2E (non-
@sanity/non-@acceptance) and quarantine-budget enforcement run inline in the deploy workflow and gatedemo/proddeployment. - Non-blocking quarantine job — quarantined tests run post-merge against the deploy commit for flaky-signal aggregation, without gating deploys.
- Quarantine system — a
@quarantine(YYYY-MM-DD, #issue)test tag, a reusablequarantine-checkcomposite action, a budget config (e2e/quarantine.config.json), and the existing weekly flaky-test aggregation.
Status
Section titled “Status”| Aspect | Value |
|---|---|
| Status | Completed (with one known follow-up) |
| Period | 2026-04-23 → 2026-04-28 |
| Repos affected | arda-frontend-app |
| Owner | Miguel (jmpicnic) |
Latest assembly version on main | v0.109.3 |
Merged PRs
Section titled “Merged PRs”| PR | Title | Merge commit |
|---|---|---|
| #803 | Deploy quality gate (initial polling implementation), CI/E2E trigger cleanup, reusable quarantine action | a330707 |
| #805 | Inline Extended E2E into deploy quality gate; remove post-merge-e2e.yaml | 8ad4208 |
| #807 | Non-blocking quality-gate-quarantine job | b88a560 precursor / 0e8701a merge |
| #808 | Authenticate npm ci to GitHub Packages in deploy workflow | b88a560 |
Earlier related work (PR-body CHANGELOG, merge-queue adoption, tiered gates, quarantine system bootstrap) landed in PRs preceding #803 and is documented inline in design.md.
Documents
Section titled “Documents”- design.md — pipeline architecture, gate semantics, deploy quality gate, quarantine system.
- decisions.md — design decisions with rationale (PR-body CHANGELOG, inline-vs-polling gate, non-blocking quarantine, deploy SHA pinning).
Companion process documentation
Section titled “Companion process documentation”The phase introduced a new contributor workflow. The how-to for humans is published outside the roadmap:
- Frontend PR Process — companion to the
pr-stewardagent skill.
Known follow-ups
Section titled “Known follow-ups”quality-gate-quarantinesummary script bug — the bash/jq script that builds the per-test summary table fails on a single-quote inside an inline jq comment. Tracked onarda-frontend-app#795(the same issue covers TC-NAV-004 hydration; the fix is required for that test to be unquarantined and re-run cleanly).- TC-NAV-004 (#795) — quarantined sidebar toggle test, awaiting React hydration investigation.
- PR-steward skill auto-detect refinement — the
simplevsqueueddetection ruleset query may need fallback paths for repositories with non-standard branch protection setups.
Reference: pipeline architecture (final state)
Section titled “Reference: pipeline architecture (final state)”PR push (Fast Gate, ~5 min)├── lint, build, unit-tests-coverage├── changelog-check (validates PR body)├── e2e (pass-through — shards skip, summary auto-passes)└── quarantine-check
Merge queue (merge_group, ~10–15 min)├── lint, build, unit-tests-coverage (re-run on rebased code)├── changelog-check (pass-through)├── e2e sanity shards (alpha, bravo) + acceptance shards (alpha, bravo, charlie)└── quarantine-check
Post-merge (push to main)├── Changelog Assembly → CLQ → GitHub Release│ └── triggers Deploy Frontend└── Deploy Frontend ├── source-info (traceability) ├── deploy-dev → deploy-stage (in series) ├── quality-gate-build → quality-gate-{alpha,bravo} → quality-gate-evaluate (parallel with deploys) ├── quality-gate-quarantine (non-blocking, parallel) ├── stage-annotation (warning if prod blocked) └── deploy-demo + deploy-prod (after stage + quality-gate-evaluate; prod requires environment approval)
Nightly (cron)└── WebKit + Mobile Safari E2E → auto-issue on failure
Weekly (cron)├── Pipeline metrics → tracking issue comment└── Flaky-test aggregation → flaky-test issuesCopyright: © Arda Systems 2025-2026, All rights reserved