Skip to content

feat(kanban): split Functional review into multi-stage validation flow - #38

Merged
saadqbal merged 2 commits into
developfrom
feat/multi-stage-fr-flow
May 4, 2026
Merged

feat(kanban): split Functional review into multi-stage validation flow#38
saadqbal merged 2 commits into
developfrom
feat/multi-stage-fr-flow

Conversation

@LukasWodka

Copy link
Copy Markdown
Contributor

Summary

Replaces the single Functional review column with four distinct states that mirror the actual dev → staging → prod deploy pipeline.

Before:Backlog → Ready → In progress → Code review → Functional review → Done

After:Backlog → Ready → In progress → Code review → FR on dev → Ready for staging → FR on staging → Ready for prod → Done

The two new Ready for … columns expose deploy-cadence delays — cards stuck there mean the next promotion is overdue, instead of hiding inside a 159-item bloated FR column.

What changed

  • advance-deploy-env.yml — now sets Status on develop/staging pushes too (previously only on main/master). develop → FR on dev, staging → FR on staging, main/master → Done.
  • kanban-closure-router.yml — routes merged PRs to the matching FR column by base branch (developFR on dev, stagingFR on staging, main/masterDone).
  • fr-pass-comment.yml (new reusable) — listens for /fr-pass PR/issue comments from repo collaborators and advances:
    • FR on devReady for staging
    • FR on stagingReady for prod
    • reacts 👍 on success, 👎 if the item isn't in an FR column.
  • fr-pass-comment-caller.yml (new template) — for per-repo adoption.

Status field changes (already applied via GraphQL)

  • Renamed Functional reviewFR on dev (preserves option ID; the 153 existing items on this column already point to the correct destination).
  • Added new options: Ready for staging, FR on staging, Ready for prod.

Backfill (separate from this PR)

Of the 159 items currently in the renamed column:

  • ~146 with Deploy environment = dev are already correctly on FR on dev.
  • ~4 with Deploy environment = staging will be moved to FR on staging via GraphQL.
  • 9 with Deploy environment = none/unset need a manual look.

How items move (reference)

TransitionTriggerAuto?
Code reviewFR on devPR merged to developyes
FR on devReady for stagingReviewer declares FR passedmanual: drag or /fr-pass
Ready for stagingFR on stagingPush to stagingyes
FR on stagingReady for prodReviewer declares FR passed on stagingmanual: drag or /fr-pass
Ready for prodDonePush to main/masteryes

Rollout

After merge:

  1. Backfill the 4 staging items + triage 9 unset ones via GraphQL.
  2. Add fr-pass-comment-caller.yml to each active repo's .github/workflows/ so the /fr-pass shortcut works org-wide. (Drag-and-drop on the kanban works without this, so the caller is optional per repo.)

Test plan

  • After merge, push a no-op commit to tracebloc/.githubdevelop and verify Status flip on this PR's project item.
  • Manually drag a card from FR on devReady for staging and confirm no automation interferes.
  • Comment /fr-pass on a sample PR after caller is added to one repo, verify 👍 reaction + column advance.
  • Push developstaging in one repo, verify items advance from Ready for stagingFR on staging.

🤖 Generated with Claude Code

LukasWodkaand others added 2 commits May 4, 2026 14:02
Replaces the single "Functional review" column with four distinct states
that mirror the actual deploy pipeline:
Code review → FR on dev → Ready for staging → FR on staging
→ Ready for prod → Done
Changes:
- advance-deploy-env.yml: now flips Status on develop/staging pushes too
(previously only on main/master). develop → "FR on dev",
staging → "FR on staging", main/master → "Done".
- kanban-closure-router.yml: routes merged PRs to the matching FR column
by base branch (develop/staging/main).
- fr-pass-comment.yml (new): listens for "/fr-pass" PR comments from repo
collaborators and advances FR-on-dev → Ready-for-staging or
FR-on-staging → Ready-for-prod. Reacts 👍/👎 on the comment.
- fr-pass-comment-caller.yml (new): per-repo template for adoption.
The two "Ready for …" columns make deploy-cadence delays visible —
cards stuck there mean the next promotion (develop → staging or
staging → prod) is overdue.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Two changes layered on top of the multi-stage FR flow:
1. Rename "Done" column → "Prod" — option ID preserved (98236657),
so existing items already on it stay put.
2. New fr-gate.yml workflow (with caller template):
- PR target = staging → all contained items must be in "Ready for staging"
- PR target = main/master → all contained items must be in "Ready for prod"
Item discovery uses the same commit-subject scan as advance-deploy-env
(squash-merge "(#NNN)" + "Merge pull request #NNN") so we check every
PR rolled into the promotion, not just the promotion PR itself.
Failure mode: status check exits 1 with a clear "how to unblock"
message. Override with the "skip-fr-gate" label for emergencies — the
label is deliberately visible so we can audit overrides.
Configured as a required status check via branch protection on
staging + main/master so the merge button stays grey until the gate
passes.
Workflow text updates: advance-deploy-env.yml + kanban-closure-router.yml
now use "Prod" everywhere they previously referenced "Done".
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@LukasWodka@saadqbal