Skip to content

release: promote develop → main (kanban drift reconciler + .kanban.yml override)#56

Merged
LukasWodka merged 2 commits into
mainfrom
develop
Jun 15, 2026
Merged

release: promote develop → main (kanban drift reconciler + .kanban.yml override)#56
LukasWodka merged 2 commits into
mainfrom
develop

Conversation

@LukasWodka

Copy link
Copy Markdown
Contributor

Summary

Promote develop → main for the .github repo. Ships the nightly kanban drift reconciler to production.

What's included (2 commits)

  • feat(kanban): nightly drift reconciler + per-repo .kanban.yml override #55feat(kanban): nightly drift reconciler + per-repo .kanban.yml override
    • New kanban-reconcile.yml workflow: nightly 04:00 UTC self-heal of the engineer kanban — moves shipped items to Prod, release vehicles to Prod, closed-not-merged PRs to Cancelled, and misplaced open issues back to Backlog. 100-move safety cap + dry-run mode.
    • advance-deploy-env.yml: adds per-repo .kanban.yml override so repos that deploy out-of-band (e.g. averaging-service ships Docker images from staging) map the right branch → Prod.

Why merge to main

.github is a process-only repo (2-stage: develop → main, no staging). The reusable workflows only take effect once they're on main — that's where every other repo's caller workflows reference them (@main). Until this promotion, the reconciler exists on develop but never runs.

Impact once live

The nightly reconciler eliminates the manual drift sweeps we've been doing all week — shipped-but-not-moved items auto-advance within 24h instead of accumulating.

Test plan

  • Merge
  • Confirm Kanban reconcile appears in the Actions tab
  • Trigger one manual workflow_dispatch with dry-run: true to sanity-check classification before the first live 04:00 UTC run

🤖 Generated with Claude Code

LukasWodka and others added 2 commits June 3, 2026 16:46
Two enhancements to harden the kanban automation against silent stalls:

1. **kanban-reconcile.yml** (new) — nightly cron at 04:00 UTC scans the kanban
   for non-terminal columns and self-heals four classes of drift:
   - Merged PRs whose SHA is on the repo's prod branch → Prod
   - Merged release-vehicle PRs ("Release: …", "Dev to staging", "Staging to prod") → Prod
   - Closed-not-merged PRs in any non-terminal column → Cancelled
   - Open issues sitting in post-merge columns → Backlog

   Safety cap: aborts if a single run would move more than 100 items (treats
   that as a bug, not real drift). Supports `dry-run` via workflow_dispatch.

2. **advance-deploy-env.yml** — added `.kanban.yml` per-repo override. Repos
   that deploy out-of-band (e.g. averaging-service ships Docker images from
   staging, no main push) can declare:

     # .kanban.yml
     branch_status_map:
       staging: Prod

   The override merges with the default mapping (develop→FR-on-dev,
   staging→FR-on-staging, master|main→Prod). This was the root cause of
   19 averaging-service items getting stuck in Ready-for-prod today —
   main was never pushed because the deploy convention doesn't require it.

Catches everything we hand-cleaned today (≈109 items). Layer 2 (stuck-in-
column nudge bot) coming as a follow-up PR.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…branch-override

feat(kanban): nightly drift reconciler + per-repo .kanban.yml override
@LukasWodka LukasWodka self-assigned this Jun 15, 2026
@LukasWodka

Copy link
Copy Markdown
Contributor Author

👋 Heads-up — Code review queue is at 13 / 8

Above the WIP limit. The team convention is to review existing PRs before opening new work.

Open PRs currently in Code review (oldest first):

Pull from review before opening new work. (This is a nudge from the kanban WIP check, not a block.)

@LukasWodka LukasWodka merged commit 60ef707 into main Jun 15, 2026
3 of 4 checks passed
Sign up for free to 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.

1 participant