Skip to content

[Sprint 14] Harden board automation reliability - #216

Merged
mpaulosky merged 1 commit into
sprint/14-board-automation-reliabilityfrom
squad/215-board-automation-reliability
Apr 30, 2026
Merged

[Sprint 14] Harden board automation reliability#216
mpaulosky merged 1 commit into
sprint/14-board-automation-reliabilityfrom
squad/215-board-automation-reliability

Conversation

@mpaulosky

Copy link
Copy Markdown
Owner

Closes #215\n\n## Summary\n- tighten project intake so only sprint delivery issues auto-enter the board\n- harden PR-driven board transitions and automate Done -> Released on dev -> main release merges\n- prevent duplicate Ralph milestone review issues and add a report-only board audit workflow\n\n## Notes\n- normal PR cards are removed from the main delivery board in favor of issue-centric tracking\n- sprint planning playbook updated to match the new operating model

…o-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 30, 2026 17:47
@github-actions github-actions Bot added the squad Squad triage inbox — Lead will assign to a member label Apr 30, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🏗️ PR Added to Squad Triage Queue

This PR has been labeled with squad and added to the triage queue.

Next steps:

  • The squad Lead will review and assign to an appropriate team member
  • A squad:member label will be added after triage

If you know which squad member should handle this, you can add the appropriate squad:member label yourself.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results Summary

273 tests  ±0   273 ✅ ±0   16s ⏱️ -1s
  6 suites ±0     0 💤 ±0 
  6 files   ±0     0 ❌ ±0 

Results for commit 3be3544. ± Comparison against base commit 02cf370.

@codecov

codecov Bot commented Apr 30, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 78.64%. Comparing base (02cf370) to head (3be3544).

Additional details and impacted files
@@                           Coverage Diff                           @@
##           sprint/14-board-automation-reliability     #216   +/-   ##
=======================================================================
  Coverage                                   78.64%   78.64%           
=======================================================================
  Files                                          43       43           
  Lines                                         721      721           
  Branches                                      112      112           
=======================================================================
  Hits                                          567      567           
  Misses                                        108      108           
  Partials                                       46       46           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Improves GitHub Project (board) automation so sprint delivery issues are intake-filtered more strictly, issue statuses transition more reliably based on PR lifecycle events, and release promotions automatically advance completed work to Released.

Changes:

  • Tighten project intake to sprint-stamped issues (title + milestone) and update sprint planning playbook to reflect issue-centric tracking.
  • Expand PR-driven issue status transitions (draft/reopen/unmerged close) and add a release-promotion path to move Done → Released on devmain merges.
  • Prevent duplicate Ralph milestone review issues and add a scheduled/manual “report-only” board audit workflow.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
.squad/playbooks/sprint-planning.md Updates sprint planning instructions to reflect automatic project intake and issue-centric tracking.
.github/workflows/project-board-automation.yml Extends PR event handling for board transitions and adds Done → Released promotion on release merges.
.github/workflows/project-board-audit.yml Adds a scheduled/dispatchable audit job that reports status drift and PR cards on the delivery board.
.github/workflows/milestone-blog.yml Adds duplicate-detection to avoid creating multiple identical Ralph milestone review issues.
.github/workflows/add-prs-to-project.yml Removes PR-card auto-add workflow in favor of issue-centric board tracking.
.github/workflows/add-issues-to-project.yml Tightens issue intake to sprint-stamped issues with milestones.
Comments suppressed due to low confidence (1)

.github/workflows/project-board-automation.yml:90

  • getIssueProjectItem only fetches the first 20 project items for an issue. If an issue is part of more than 20 projects, the workflow can fail to find the delivery-board item and will incorrectly skip updating status. Consider increasing the page size and/or adding pagination so the project item lookup is reliable.
              const projectQuery = await github.graphql(`
                query($nodeId: ID!) {
                  node(id: $nodeId) {
                    ... on Issue {
                      projectItems(first: 20) {
                        nodes {
                          id
                          project { id }
                        }
                      }

if: contains(github.event.issue.labels.*.name, 'squad')
# Only add sprint-stamped delivery issues.
if: >
contains(github.event.issue.labels.*.name, 'squad') &&

Copilot AI Apr 30, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The intake condition only matches the literal squad label. If an issue is opened/reopened with only a member label (e.g., squad:aragorn) it will be excluded from auto-intake even if it’s sprint-stamped. Consider updating the predicate to allow squad:* labels as well (similar to how other workflows treat squad labels).

Suggested change
contains(github.event.issue.labels.*.name, 'squad') &&
(contains(github.event.issue.labels.*.name, 'squad') ||
contains(toJson(github.event.issue.labels.*.name), 'squad:')) &&

Copilot uses AI. Check for mistakes.
Comment on lines +194 to +195
await updateStatus(item.id, statusTargets.released);
core.info(`✅ Issue #${item.content.number} → Released`);

Copilot AI Apr 30, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In moveDoneIssuesToReleased, any failure updating a single item will throw and abort the entire release promotion (leaving the board partially transitioned). Consider wrapping each per-item update in its own try/catch (and continuing), similar to moveLinkedIssues, so a transient failure doesn’t block moving the rest.

Suggested change
await updateStatus(item.id, statusTargets.released);
core.info(`✅ Issue #${item.content.number} → Released`);
try {
await updateStatus(item.id, statusTargets.released);
core.info(`✅ Issue #${item.content.number} → Released`);
} catch (error) {
core.warning(
`Failed to move issue #${item.content?.number ?? 'unknown'} to Released: ${error.message}`
);
}

Copilot uses AI. Check for mistakes.
Comment on lines 122 to 136
@@ -139,8 +136,9 @@ gh project item-edit \
--single-select-option-id {IN_SPRINT_OPTION_ID}

Copilot AI Apr 30, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Step 4 now relies on auto-intake, but the kickoff command still requires {ITEM_ID} and the playbook no longer describes how to retrieve the project item ID for a given sprint issue. Add a short instruction for finding the project item ID (e.g., via GitHub UI or gh project item-list filtering by issue) so the manual kickoff step is actionable.

Copilot uses AI. Check for mistakes.
@mpaulosky
mpaulosky merged commit 5470119 into sprint/14-board-automation-reliability Apr 30, 2026
41 checks passed
@mpaulosky
mpaulosky deleted the squad/215-board-automation-reliability branch April 30, 2026 22:01
mpaulosky added a commit that referenced this pull request Apr 30, 2026
Co-authored-by: Boromir <boromir@squad.dev>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

squad Squad triage inbox — Lead will assign to a member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants