Review: Fix CI: update-kustomize-tag runs on build failure due to status filter

review-1634-2026-06-27 Review

review needs-refinement

Verdict: NEEDS_REFINEMENT

Template Completeness

  • [x] Type -- Bug
  • [x] Lineage -- Sub-ticket of pal-e-deployments #220, discovered during sprint 5 validation
  • [x] Repo -- ldraney/westside-basketball
  • [x] What Broke -- clear description of status filter overriding depends_on semantics
  • [x] Repro Steps -- 3 steps, reproducible
  • [x] Expected Behavior -- clear
  • [x] Environment -- Woodpecker CI, file paths identified
  • [x] Acceptance Criteria -- 4 criteria, testable
  • [x] Related -- parent issue, predecessor, review note, project page

Traceability

  • [x] story:WS-S1 label -- "As superadmin, I want to deploy platform changes via IaC so that infrastructure is reproducible and auditable"
  • [x] story note verified -- found in project-westside-basketball user-stories section (Superadmin list, WS-S1)
  • [ ] arch note MISSING -- [SCOPE] No architecture note found for arch-iac. Search for "arch-iac" returned zero results. Create architecture note arch-iac for the IaC component.
  • [x] Forgejo issue -- ldraney/westside-basketball#77, state: open

File Targets

  • [x] .woodpecker.yaml -- verified: file exists at repo root (not .woodpecker/ci.yaml as issue hedges). Issue mentions both possible names; the actual file is .woodpecker.yaml.
  • [x] Line ~121 status: [success, failure] -- verified: exact match at line 121
  • [x] Lines 116-117 depends_on: [build-and-push] -- verified: lines 116-117 contain depends_on: and - build-and-push
  • [x] Line ~110 OVERLAY: "westside-ror" -- verified: exact match at line 110
  • [ ] OVERLAY target value -- ISSUE: Issue says change OVERLAY to westside-basketball, but no overlay directory westside-basketball exists in pal-e-deployments. The existing overlays are westside-ror (Rails app) and westsidekingsandqueens (frontend). The value westside-ror correctly maps to overlays/westside-ror/prod/kustomization.yaml which exists. The pal-e-platform template mapping comment confirms westside-app -> OVERLAY=westsidekingsandqueens and does not list a westside-basketball overlay.

Repo Placement

Correct. The fix is in .woodpecker.yaml which lives in ldraney/westside-basketball and the Forgejo issue is filed there. However, the template source at pal-e-platform/scripts/woodpecker-update-tag-step.yaml also has the same status: [success, failure] pattern and should be fixed separately to prevent future onboarding of the bug.

Dependencies

  • No blocking items in in_progress. The three in-progress items (Phase 14, Phase 11, Phase 15) are unrelated plan-level phases.
  • Parent issue: pal-e-deployments #220 -- this is a decomposition child.
  • Predecessor: westside-basketball #69 (CI test failures) -- already merged.
  • No board items block or are blocked by this ticket.

Acceptance Criteria

  • AC1: "status changed to [success] or removed" -- agent-verifiable, one-line sed change
  • AC2: "OVERLAY updated from westside-ror to westside-basketball" -- INVALID. No westside-basketball overlay exists. This AC must be corrected or removed. If the intent is to rename the overlay directory, that is a separate pal-e-deployments change not scoped here.
  • AC3: "CI pipeline tested: does NOT run on failure" -- verifiable in Woodpecker but requires triggering a real build failure. May need manual verification or a targeted test commit.
  • AC4: "CI pipeline tested: DOES run on success" -- verifiable, normal push to main.

Blast Radius

HIGH. The same status: [success, failure] pattern exists in:
  • paldocs/.woodpecker.yaml:121 -- identical bug
  • pal-e-platform/scripts/woodpecker-update-tag-step.yaml:45 -- the canonical template that all new repos copy from
  • Multiple worktree copies of the template (stale, not actionable)
Fixing only westside-basketball leaves the bug alive in paldocs and baked into the template for future repos. The template fix should be a separate ticket on pal-e-platform.

Decomposition Assessment

No decomposition needed. 1 file target, 1 repo, the valid fix is a one-line change (remove or change the status filter). Estimated agent work: under 2 minutes. Well within the 5-minute rule.

Recommendation

  • [BODY] Remove AC2 entirely ("OVERLAY updated from westside-ror to westside-basketball"). The overlay westside-ror is the correct value -- no westside-basketball overlay exists in pal-e-deployments. Alternatively, if a rename is intended, it must be a separate ticket scoped to pal-e-deployments.
  • [BODY] Remove the sentence in "What Broke" that says "the OVERLAY env var still references westside-ror and needs to change to westside-basketball" -- this is factually incorrect per current infrastructure.
  • [BODY] Clarify the file path: the file is .woodpecker.yaml (not .woodpecker/ci.yaml). Remove the hedging "(or .woodpecker.yaml)" and state the definitive path.
  • [SCOPE] Create architecture note arch-iac for the IaC component. The arch:iac label is used but no backing note exists in pal-e-docs.