Skip to content

feat(board): auto-update board Status field on pipeline_stage transitions#89

Merged
snipcodeit merged 1 commit intomainfrom
issue/74-auto-update-board-status-field-on-p
Mar 1, 2026
Merged

feat(board): auto-update board Status field on pipeline_stage transitions#89
snipcodeit merged 1 commit intomainfrom
issue/74-auto-update-board-status-field-on-p

Conversation

@snipcodeit
Copy link
Owner

Summary

  • Add update_board_status shared utility (board-sync.md workflow) that maps pipeline stages to GitHub Projects v2 board Status field options
  • Hook board sync into issue.md triage transitions (triaged/needs-info/needs-security-review) and run.md pipeline transitions (executing → verifying → pr-created → done)
  • Non-blocking design: board API failures never block pipeline execution (all calls use || true, all error paths return 0)
  • Reads field/option IDs from .mgw/board-schema.json or .mgw/project.json at runtime — never hardcodes IDs

Closes #74

Milestone Context

  • Milestone: v2 — GitHub Projects Board Management
  • Phase: 14 — Pipeline State Sync
  • Issue: 4 of 9 in milestone

Changes

  • New: .claude/commands/mgw/workflows/board-sync.md — shared update_board_status utility with full data source reference, stage mapping table, and non-blocking contract documentation
  • Updated: .claude/commands/mgw/issue.md — board status sync after write_state step (triage transitions: triaged/needs-info/needs-security-review)
  • Updated: .claude/commands/mgw/run.md — board status sync at each pipeline checkpoint (executing, discussing, planning, verifying, pr-created, done, blocked); update_board_status function defined in validate_and_load step; board-sync.md added to execution_context
  • Updated: .claude/commands/mgw/workflows/state.md — board status sync added to Consumers table

Test Plan

  • After triage in issue.md, board item Status updates to matching pipeline_stage option (triaged → Triaged, needs-info → Needs Info, etc.)
  • After executor runs in run.md, board item Status updates to Executing
  • After PR creation, board item Status updates to PR Created
  • After pipeline completes, board item Status updates to Done
  • If .mgw/project.json has no node_id (board not configured), all update_board_status calls are silent no-ops — pipeline runs unchanged
  • If issue has no board_item_id in project.json (not yet added to board), call is a silent no-op
  • If board Status field has no option matching the pipeline stage, call is a silent no-op
  • If GraphQL API returns an error, || true suppresses the exit code — pipeline continues

…ions

Add update_board_status shared utility (board-sync.md) and hook into issue.md
and run.md stage transitions. All board updates are non-blocking — API failures
never prevent pipeline execution. Reads field/option IDs from board-schema.json
or project.json at runtime.

Closes #74

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

slash-commands Changes to slash command files triage-pipeline

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Auto-update board Status field on pipeline_stage transitions

1 participant