ci(roadmap): auto-move CS cards to Concluídas on merge (CS-73) - #34
Merged
Conversation
The board-discipline rule said "move to Concluídas at E6 (merge)", but the merge happens on GitHub after the PR — there was no mechanism, so it never ran and CS-49/CS-72 sat stuck in Em andamento after merging. This makes the roadmap track git completion automatically. - .github/workflows/roadmap-sync.yml: on pull_request closed+merged, resolves the CS number from the PR title (CS-NN) or branch (feature/NN-), moves that card to done, stamps the merge SHA, and commits the board to main. GitHub-hosted runner; the board-only push doesn't re-trigger CI or this workflow (both run on pull_request), so no loop. Inputs passed via env, never interpolated into the shell (no injection). - scripts/roadmap-move-to-done.mjs: pure Node mover. Guards: no CS number / card absent / already done → no-op. Leaves version empty (stamped only at release, per git-tag authority). - Catch-up: CS-49 and CS-72 moved to Concluídas with their merge commits. - CS-73 card (this work) added in Em andamento — the merge of this PR will move it to Concluídas automatically, proving the pipeline. - AGENTS.md: the E6 board move is now documented as automated.
7 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
You're right — the roadmap wasn't tracking git completion. The board-discipline rule said "move to Concluídas at merge (E6)", but the merge happens on GitHub after the PR, and nothing executed that move — so CS-49 and CS-72 stayed stuck in Em andamento after their PRs merged. This adds the missing mechanism.
The fix — a GitHub Action that runs on merge
.github/workflows/roadmap-sync.yml: triggers onpull_requestclosedwhenmerged == true. It resolves the CS number from the PR title (CS-NN) or branch (feature/NN-…), moves that card to Concluídas, stamps the merge commit, and commits the board tomain.pull_request), so no loop.scripts/roadmap-move-to-done.mjs: pure Node mover. No-ops safely when there's no CS number, the card is missing, or it's already done. Leavesversionempty — versions are stamped only at release (git-tag authority).Catch-up + self-proving
fd57b66,a201ccf).Docs
AGENTS.md: the E6 board move is now documented as automated; the only rule for it to fire is that the PR title or branch carries the CS number (which our conventions already do).Heads-up (one thing to watch on first run)
The Action pushes a board commit to
mainusing the defaultGITHUB_TOKEN. Ifmainhas a branch-protection rule that blocks token pushes, the push step will fail (the card move won't land) — tell me and I'll switch it to a deploy key / PAT. For a solo repo without that protection, it just works.Checklist
🤖 Generated with Claude Code