merged-pr-not-deployed-gate-label-missinglisted
Install: claude install-skill wan-huiyan/agent-traffic-control
# Merged PR Not Deployed — Gate Label / Path Filter Quietly Skipped the Workflow
## Problem
A code change is merged into main and CI is green. The user opens the live service expecting to see the change and it's not there. The natural first instinct is "Cloud Run is caching" or "the bake hasn't re-run yet" or "I'm looking at the wrong revision". The actual cause is much simpler and quieter: **the deploy workflow never ran**, because the PR didn't satisfy the workflow's `if:` gate (typically a required label like `auto-deploy`, or a path filter that excludes the changed files).
The trap is that GHA's `conclusion=skipped` looks visually identical to `conclusion=success` in the workflow run summary on the PR page and in `gh run list` — same green checkmark icon, same "completed" status. Nothing on the PR's "all checks passed" surface tells you the deploy didn't happen.
This is a sister symptom to `gha-auto-deploy-never-ran-skipped-mask` (the FIRST-time-the-gate-fires-and-finds-an-infra-gap pattern), but a distinct cause: here the gate works as designed, the PR simply didn't carry the label.
## Context / Trigger Conditions
All of these are typically true:
- The PR has been merged (`gh pr view <N> --json state` returns `MERGED`).
- All required status checks were green at merge time.
- The repo has a deploy workflow with a top-level conditional gate. Common patterns:
```yaml
on:
pull_request:
types: [closed]
branches: [main]
jobs:
gate:
if: