ci(delivery-e2e): flip to merge-blocking — fail-closed gate (#37 / mc#2996 Phase 2b) #3024
Reference in New Issue
Block a user
Delete Branch "fix/rfc2843-37b-flip-required"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
RFC#2843 #37 (mc#2996) Phase 2b — flip template-delivery-e2e to a fail-closed merge gate
Phase 2a (
f6155d68) hardened the asset assertions and banked a green main run, satisfyinglint-pre-flip-continue-on-error. This flips the gate to merge-blocking.What changes
continue-on-errorremoved — a real delivery regression now fails the job (no longer masked).on: paths:removed — a required-check workflow must not be path-filtered (lint-required-no-paths/feedback_path_filtered_workflow_cant_be_required: a docs-only PR would never emit the context → Giteapending→ wedged).detect-changesjob (newtemplate-deliveryprofile indetect-changes.py), applied per-step — mirroring the requirede2e-api/peer-visibilitygates. A non-delivery PR runs only the no-op step and emits SUCCESS (no provision); a delivery PR runs the full e2e and BLOCKS on failure. One always-running job → exactly one check run (no SKIPPED-check BP trap, per the e2e-api PR#2264 note)..gitea/required-contexts.txt.detect-changes(new emitter) →bp-exempt;delivery→bp-required: yes.Out-of-band, AFTER this lands on main: add
template-delivery-e2e / Template-asset delivery (…) (pull_request)to branch-protectionrequired_status_checks. Done after merge so open PRs whose branch still has the path-filtered workflow aren't phantom-blocked.End state: a PR touching the delivery surface (
plugins_reconcile,template_assets,org_import,manifest.json, …) cannot merge unless a fresh seo-agent provisions and BOTH channels verify (config+prompts via asset, seo-all via plugin reconcile).SOP
lint_no_coe_on_required= 6 contexts, none with COE), observability (no-op step logs the detect-changes debug).🤖 Generated with Claude Code
QA: canonical required-gate shape (detect-changes + per-step gating + no-op SUCCESS), COE removed, SSOT updated, regex unit-checked, 60 meta-lint tests green. Fail-closed on delivery PRs. APPROVE.
/sop-ack comprehensive-testing verified — #37 Phase 2b fail-closed flip.
/sop-ack local-postgres-e2e verified — #37 Phase 2b fail-closed flip.
/sop-ack staging-smoke verified — #37 Phase 2b fail-closed flip.
/sop-ack root-cause verified — #37 Phase 2b fail-closed flip.
/sop-ack five-axis-review verified — #37 Phase 2b fail-closed flip.
/sop-ack no-backwards-compat verified — #37 Phase 2b fail-closed flip.
/sop-ack memory-consulted verified — #37 Phase 2b fail-closed flip.
Security: CI-shape only; no runtime/secret surface. APPROVE.