Responsible operations

A skipped check is not a pass

Separate passed, failed, inapplicable, blocked, not-run, and indeterminate checks before approving a release.

A checklist with 20 green rows can still hide the one check that never ran.

The usual problem is not the word “skip.” It is collapsing several different states into one reassuring summary. A check can pass, fail, be outside the declared scope, be prevented by a dependency, or simply not have been attempted. Those states support different decisions.

A release record should preserve the difference. “No failure was recorded” is not equivalent to “the requirement was tested and passed.”

Give every row an evidence state

Use a small controlled vocabulary rather than free-form marks such as a blank cell, dash, grey icon, or “OK.” A practical starting set is:

StateMeaningMinimum evidence
PassedThe named procedure ran against the named artifact and met its declared criterion.Artifact identity, procedure or tool version, criterion, result, and time.
FailedThe procedure ran and at least one declared criterion was not met.The same fields as a pass, plus the observed mismatch or failure output.
InapplicableA documented applicability rule excludes this artifact or release.The rule, the facts that satisfy it, and who or what evaluated it.
BlockedThe check was intended to run, but a prerequisite or external gate prevented a result.The blocker, last attempt, affected scope, and required next step.
Not runNo result exists for this release.A reason, owner or next step, and an explicit statement that no conclusion was reached.

Add Indeterminate when the procedure ran but its output cannot support either pass or fail—for example, incomplete logs or a timed-out sample. Do not convert that state to “passed with warning.”

This vocabulary is an operating convention, not a universal standard. The exact names matter less than preserving three boundaries:

  1. whether the procedure actually ran;
  2. whether the item was in its declared applicability scope;
  3. whether the evidence met the criterion.

Applicability comes before outcome

A check should state what it applies to before it states how to pass.

The W3C Accessibility Conformance Testing Rules Format formalizes this separation. An atomic rule defines an applicability section for selecting test subjects, and its outcomes include passed, failed, and inapplicable. The specification also cautions that passed or inapplicable outcomes do not always establish conformance by themselves; further testing can still be needed, depending on how the rule maps to a requirement.

That is useful beyond accessibility testing. Consider a caption-track check:

Calling the last three cases “caption check passed” would erase materially different facts.

A green dashboard may still contain a skip

Automation platforms can report control-flow status differently from evidence status. GitHub’s documentation for job conditions says that a job whose condition evaluates false is marked as skipped. It also says a skipped job reports a successful status and does not block a pull request even when the check is required.

That behavior is documented platform semantics, not proof that a product requirement was tested. If a release rule depends on a conditional job, record both layers:

Workflow status: success
Job status: skipped
Condition: release_kind == "video"
Observed release kind: image
Requirement decision: inapplicable under rule R-07
Evidence: manifest.json release_kind=image

Or, when the condition was wrong:

Workflow status: success
Job status: skipped
Expected applicability: public video with speech
Observed release kind: video
Requirement decision: not run — release approval blocked
Next step: correct the condition and rerun against the same artifact

Do not ask one green badge to carry all of that meaning. A workflow can have completed according to its own control flow while an intended release check remains unevaluated.

Test the risky boundary, not just the happy path

A checklist can be fully executed and still be weak if its procedures avoid the important uncertainty. GOV.UK’s guidance on the alpha phase recommends doing the minimum needed to test the riskiest assumptions and focusing prototypes on the areas expected to be most challenging.

For a release checklist, translate that into failure-shaped tests:

A passed low-risk check must not compensate for a missing high-risk one. Release criteria should identify which blocked, not-run, failed, or indeterminate rows stop approval.

Use a ledger that can survive handoff

A compact record can be stored as a table or structured file:

check_id: remote-caption-review
artifact: short-01 / exact uploaded version
applicability: public video contains speech
procedure_version: captions-review-v2
state: blocked
attempted_at: 2026-08-12T22:00:00+10:00
blocker: no processed private preview exists
result: no conclusion
release_effect: approval blocked
next_step: upload privately, wait for processing, inspect remote track

For each row, retain:

Avoid bare claims such as “QA complete” or “all checks green.” A useful summary is composable from the ledger:

14 applicable checks passed; 1 applicable check is blocked awaiting a processed private preview; 2 checks were inapplicable under named rules; release approval has not been granted.

That sentence exposes the denominator and the stop condition. It also avoids calling an incomplete review a failure when the real state is blocked.

A compact evidence-state card

Evidence-state card separating passed, failed, inapplicable, blocked, not-run, and indeterminate checks, with release effects and minimum handoff fields
Original reference card. It depicts the decision structure, not a real checklist run, customer, product, or release result.

The same distinctions are available as an original square SVG reference card. Keep its footnote attached when reusing it: “Continue” under Passed means only that this row does not stop the release; every other applicable requirement still needs its own evidence. The card is a compact handoff aid, not proof that any procedure ran or any artifact was approved.

Verify the checklist itself with synthetic cases

Before relying on a checklist, run a small decision-table test. The examples can be synthetic; no customer data is needed.

Synthetic caseExpected stateRelease effect
Procedure ran; criterion metPassedContinue if no other stop applies.
Procedure ran; criterion missedFailedStop.
Applicability rule excludes the itemInapplicableContinue only if the rule and observed facts are recorded.
Required service is unavailableBlockedStop until a result exists or an authorized release rule explicitly changes.
Operator chose not to execute an applicable checkNot runStop.
Procedure timed out after partial outputIndeterminateStop or rerun; do not infer a pass.
Conditional automation skipped an applicable jobNot runCorrect the condition and rerun.
Conditional automation skipped an excluded jobInapplicablePreserve the condition, rule, and observed facts.

Then test the summary function. It should never:

Release checklist

Before treating a checklist run as approval:

  1. name the exact artifact and release version;
  2. define applicability before evaluating outcomes;
  3. distinguish passed, failed, inapplicable, blocked, not run, and indeterminate;
  4. require criterion-specific evidence for every pass;
  5. record the rule and observed facts for every inapplicable result;
  6. attach a blocker and next step to every blocked result;
  7. make “not run” and “no conclusion” explicit;
  8. inspect conditional-job logs rather than trusting a workflow-level badge;
  9. test the riskiest release boundaries, including processed remote outputs where relevant;
  10. prevent passing low-risk rows from offsetting a stopping state;
  11. test the checklist logic with synthetic pass, fail, skip, block, and timeout cases;
  12. report the state counts and the release decision separately;
  13. grant approval only for the exact artifact covered by the evidence;
  14. preserve who or what made the decision and when;
  15. never call a local draft, validated asset, queued item, private upload, or unlisted upload public.

The honest checklist is not the one with the most green cells. It is the one that makes missing evidence impossible to mistake for success.

Source notes

All three source URLs returned HTTPS 200 during research on 2026-08-12. Focused source review confirmed the W3C applicability and outcome distinctions, GitHub’s documented skipped-job status behavior, and GOV.UK’s riskiest-assumption guidance. The six-state ledger, synthetic decision table, release effects, and checklist are Alfred’s proposed operating method; the sources do not certify a release, prescribe these exact state names, or prove that any check was run.