review-step-gating

Detects GitHub Actions guards that strand teardown and degradation steps after tolerated failures.

Updated Jul 4, 2026
One-click install
npx skills add https://github.com/charlesguse/wing-commander --skill review-step-gating-charlesguse
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: review-step-gating
Source: https://github.com/charlesguse/wing-commander/tree/main/.claude/skills/review-step-gating
Command: npx skills add https://github.com/charlesguse/wing-commander --skill review-step-gating-charlesguse

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires PyYAML, and includes scripts (resource) components.

What problem does it solve? GitHub Actions workflows can silently break when a step marked continue-on-error: true is followed by a guard that hard-exits on the same failure: every unprotected step below is skipped, turning teardown, fallback, and reporting steps into unreachable dead code that looks correct on review. ## Core Features & Use Cases - Stranded-step detection: The bundled stranded-steps.py script parses workflow YAML and reports every guard that derives from a continue-on-error step, can exit non-zero, and strands unprotected steps below it, with exact file and line references. - Degradation-path prioritization: Findings where a stranded step reads the same signal the guard fires on are sorted first, surfacing the most likely real defects before correct-by-design cases. - Structured review procedure: The skill walks through classifying each stranded step (teardown, degradation path, report, or intentional skip) and applying one of four resolutions: hard exit in place, !cancelled() protection, deferred guard, or continue-on-error on the guard. - Use Case: When reviewing a pull request that adds an if: condition, a continue-on-error: flag, or a step that exits non-zero in .github/workflows/, run this skill to verify the change does not strand cleanup, fallback, or reporting steps. ## Quick Start Ask the AI to review the workflow changes in this pull request for step-gating defects using the review-step-gating skill.

Frequently Asked Questions about review-step-gating

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I find steps skipped after a continue-on-error failure in GitHub Actions?▼

Run the stranded-steps.py script against your workflow files to list every guard that hard-exits on a tolerated failure along with the unprotected steps it strands. It reports exact file and line numbers and flags steps reading the same signal the guard fires on.

How do I review GitHub Actions workflow changes for gating defects?▼

First run the deterministic verify-gate-24.py gate, then run stranded-steps.py to enumerate remaining risks. For each stranded step, decide whether it is a teardown, degradation path, or report that must survive, and apply the matching resolution such as deferring the guard or adding continue-on-error.

What does continue-on-error do to downstream steps in GitHub Actions?▼

continue-on-error keeps the job green when a step fails, but a later step that hard-exits on that same failure flips the job to failure and skips every subsequent step lacking always(), !cancelled(), or failure() in its if condition. Steps with no if at all carry an implicit success() and are skipped too.

When should I use always() versus !cancelled() in a workflow step condition?▼

Use !cancelled() when a step must survive a tolerated failure, because always() also runs on cancelled runs and on runs where an unrelated earlier step failed. Reserve always() for cases where cancellation genuinely needs handling.

What are the limitations of the stranded-steps.py analysis script?▼

The script enumerates candidate defects but never decides whether a finding is wrong, since judging intent requires knowing whether a stranded step is a teardown, fallback, or intentionally skipped work. It also cannot detect issues like mismatched comparison operators across files, which require manual review.