ci: enforce test-plan task-list completion on PRs#29
Merged
rocketman-code merged 1 commit intomainfrom Apr 14, 2026
Merged
Conversation
PR task lists exist to enforce verification discipline (every test run, every box checked before merge). Without enforcement, "complete the box" silently degrades into "merge anyway." This workflow fails on any unchecked task-list item in a PR body, blocking merge via required status check. Skip conditions: - Drafts (intentional WIP, not ready for review) The error message says "complete," not "complete or remove," because removing the checklist defeats the purpose. The obligation is doing the test, not editing the PR body. Tested locally against six representative PR body shapes (unchecked, all-checked, no list, empty body, indented unchecked, similar-looking non-task text). All behaved correctly. After merge, branch protection on main needs to be updated in repo settings to require the new task-list-completed check.
4556e16 to
f630d35
Compare
10 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.
Summary
.github/workflows/pr-task-list.yml. Fails on any unchecked task-list item (- [ ]) in a PR body. Skips drafts.Why
PR test plans exist to enforce verification discipline. Without mechanical enforcement, "complete the box" silently degrades into "merge anyway." Under atomic-rollback's trust contract, code touching the boot chain cannot ship through unverified review checkpoints.
What "delivered" means here
A workflow that exists but isn't in required checks is advisory, not enforcing. This PR's deliverable is the enforcement, not the YAML alone. Three required-check additions are part of this PR's completion contract:
task-list-completed(the workflow this PR adds)tests (ubuntu-latest)(added by PR ci: add cargo test job on ubuntu + macos matrix #30, never made required — backlog cleanup)tests (macos-latest)(same)These get added immediately after merge via:
Sequencing rule:
task-list-completedMUST be added AFTER this PR merges. Adding it before merge would block all PRs (the workflow doesn't exist on main yet, no check reports with that name).Test plan
Post-merge motion (single committed sequence, executed atomically with merge)
Not a checkbox because it can only be verified after merge — but binding as the maintainer's commitment to complete the deliverable. The merge is incomplete until the API call runs and is verified.
gh pr merge 29 --rebase --delete-branchgh apicommand abovegh api repos/rocketman-code/atomic-rollback/branches/main/protection --jq '.required_status_checks.contexts'— expect five contexts: x86_64, aarch64-cross, task-list-completed, tests (ubuntu-latest), tests (macos-latest)If verification fails, the PR is unfinished.