You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Parent epic: #11
Related accepted workflow baselines: #104, #113, #143
Observed on exact main SHA: 4b8c852681c0ace77f0da94b7f7c38e807c42984
Outcome
Normal push CI must produce the required screenshot evidence whenever the verification planner marks a change as render-impacting, so the aggregate gate can validate a release instead of rejecting an otherwise green run and skipping publish/deploy.
The verification report has screenshots in the skipped bucket with reason=required_result_missing.
.github/workflows/ci.yml has no screenshot component/result for render-impact pushes.
Publish/deploy were therefore skipped; this is a deterministic workflow/evidence defect, not a product test failure.
Scope
Add the normal-CI screenshot component/job or otherwise wire the existing screenshot capture/evidence contract into the push workflow for render-impact selections.
Use the planner's exact screenshot requirements and record digest-bound evidence through the existing ci.verification contract.
Keep screenshots synthetic and free of credentials/PII; preserve the fail-closed aggregate gate.
Add workflow/contract tests proving render-impact changes cannot finish without a valid screenshot result, while non-render changes remain allowed to use not_applicable.
Do not weaken ci.gate.normal, allow pending screenshot evidence, or mark render-impact screenshots not applicable.
Do not change application behavior, templates, CSS, deployment, or product routes.
Do not delete screenshot assertions or bypass evidence validation.
Acceptance criteria
A normal push with render-impacting template/static changes runs the screenshot component using the planner-authorized command/profile and records a valid digest-bound result.
The aggregate gate accepts a complete render-impact run only when screenshot evidence is present, valid, and tied to the exact source/plan/environment; missing or malformed evidence still fails closed.
A non-render push retains the existing screenshots: not_applicable behavior.
Synthetic desktop/mobile captures are inspected for the changed surface; no credentials, PII, debug page, overflow, or minified template output appears.
make test-ci, focused Django/Playwright checks, git diff --check, and the exact normal push workflow complete successfully on the candidate.
A post-merge normal CI run at the exact merged SHA is terminal green and reaches publish/deploy gates.
Required process
Follow _docs/PROCESS.md: groomed issue, engineer frozen uncommitted handoff, independent tester PASS, PM acceptance, local merge/push, then on-call observes the exact push run. Do not manually rerun the failed SHA as proof.
Parent epic: #11
Related accepted workflow baselines: #104, #113, #143
Observed on exact main SHA:
4b8c852681c0ace77f0da94b7f7c38e807c42984Outcome
Normal push CI must produce the required screenshot evidence whenever the verification planner marks a change as render-impacting, so the aggregate gate can validate a release instead of rejecting an otherwise green run and skipping publish/deploy.
Confirmed failure
Run: https://github.com/DataTalksClub/website/actions/runs/31691360510
resolve-release, classification, quality, Django, Playwright, and container all passed.ci-gate.jsonis correctly fail-closed withverdict=failure.render.impact=truebecause Implement confirmed design-audit Phase 1 quality fixes #144 changedcourses/templates/homework/stats.htmland course CSS.screenshotsin the skipped bucket withreason=required_result_missing..github/workflows/ci.ymlhas no screenshot component/result for render-impact pushes.Scope
ci.verificationcontract.not_applicable.Non-goals
ci.gate.normal, allow pending screenshot evidence, or mark render-impact screenshots not applicable.Acceptance criteria
screenshots: not_applicablebehavior.make test-ci, focused Django/Playwright checks,git diff --check, and the exact normal push workflow complete successfully on the candidate.Required process
Follow
_docs/PROCESS.md: groomed issue, engineer frozen uncommitted handoff, independent tester PASS, PM acceptance, local merge/push, then on-call observes the exact push run. Do not manually rerun the failed SHA as proof.