Skip to content

ci(roadmap): auto-move CS cards to Concluídas on merge (CS-73) - #34

Merged
RudneyForti merged 1 commit into
mainfrom
chore/73-roadmap-autosync
Jul 19, 2026
Merged

ci(roadmap): auto-move CS cards to Concluídas on merge (CS-73)#34
RudneyForti merged 1 commit into
mainfrom
chore/73-roadmap-autosync

Conversation

@RudneyForti

Copy link
Copy Markdown
Collaborator

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 on pull_request closed when merged == 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 to main.
    • GitHub-hosted runner (no Docker). The board-only push doesn't re-trigger CI or this workflow (both run on pull_request), so no loop.
    • Inputs passed via env vars, never interpolated into the shell — no injection from a crafted title/branch.
  • 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. Leaves version empty — versions are stamped only at release (git-tag authority).

Catch-up + self-proving

  • CS-49 and CS-72 moved to Concluídas now, with their merge commits (fd57b66, a201ccf).
  • CS-73 (this work) is added in Em andamento — when you merge this PR, the Action will move CS-73 to Concluídas on its own, proving the pipeline end-to-end.

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 main using the default GITHUB_TOKEN. If main has 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

  • Link to feature/issue: CS-73
  • Description of changes included above
  • Additions documented
  • Existing tests pass (CI workflow + data + docs; no app code)
  • New tests (n/a — CI automation; extraction logic verified manually)
  • No regressions

🤖 Generated with Claude Code

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.
@RudneyForti
RudneyForti merged commit ede1065 into main Jul 19, 2026
3 checks passed
@RudneyForti
RudneyForti deleted the chore/73-roadmap-autosync branch July 19, 2026 19:02
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