- Add step to mark beads as 'in_review' after PR creation - Add PR URL to bead notes for traceability - Create reconcile_beads skill to close beads when PRs are merged - Update summary table to show bead status instead of generic status Implements bead: nixos-configs-85h
86 lines
2.1 KiB
Markdown
86 lines
2.1 KiB
Markdown
---
|
|
description: Reconcile beads with merged PRs and close completed beads
|
|
---
|
|
|
|
# Reconcile Beads Workflow
|
|
|
|
This skill reconciles beads that are in `in_review` status with their corresponding PRs. If a PR has been merged, the bead is closed.
|
|
|
|
## Prerequisites
|
|
|
|
- Custom status `in_review` must be configured: `bd config set status.custom "in_review"`
|
|
- Beads in `in_review` status should have a PR URL in their notes
|
|
|
|
## Workflow
|
|
|
|
### Step 1: Find beads in review
|
|
|
|
```bash
|
|
bd list --status=in_review
|
|
```
|
|
|
|
### Step 2: For each bead, check PR status
|
|
|
|
1. **Get the PR URL from bead notes**:
|
|
```bash
|
|
bd show [BEAD_ID] --json | jq -r '.notes'
|
|
```
|
|
Extract the PR URL (look for lines starting with "PR:" or containing pull request URLs)
|
|
|
|
2. **Detect hosting provider**:
|
|
- Run `git remote get-url origin`
|
|
- If URL contains `github.com`, use `gh`; otherwise use `tea` (Gitea/Forgejo)
|
|
|
|
3. **Check PR status**:
|
|
- For GitHub:
|
|
```bash
|
|
gh pr view [PR_NUMBER] --json state,merged
|
|
```
|
|
- For Gitea:
|
|
```bash
|
|
tea pr view [PR_NUMBER]
|
|
```
|
|
Look for "State: merged" or "State: closed"
|
|
|
|
### Step 3: Close merged beads
|
|
|
|
If the PR is merged:
|
|
```bash
|
|
bd close [BEAD_ID] --reason="PR merged: [PR_URL]"
|
|
```
|
|
|
|
### Step 4: Report summary
|
|
|
|
Present results:
|
|
|
|
```
|
|
## Beads Reconciliation Summary
|
|
|
|
### Closed (PR Merged)
|
|
| Bead | PR | Title |
|
|
|------|-----|-------|
|
|
| beads-abc | #123 | Feature X |
|
|
| beads-xyz | #456 | Bug fix Y |
|
|
|
|
### Still in Review
|
|
| Bead | PR | Status | Title |
|
|
|------|-----|--------|-------|
|
|
| beads-def | #789 | Open | Feature Z |
|
|
|
|
### Issues Found
|
|
- beads-ghi: No PR URL found in notes
|
|
- beads-jkl: PR #999 not found (may have been deleted)
|
|
```
|
|
|
|
## Error Handling
|
|
|
|
- **Missing PR URL**: Skip the bead and report it
|
|
- **PR not found**: Report the error but continue with other beads
|
|
- **API errors**: Report and continue
|
|
|
|
## Notes
|
|
|
|
- This skill complements `/parallel_beads` which sets beads to `in_review` status
|
|
- Run this skill periodically or after merging PRs to keep beads in sync
|
|
- Beads with closed (but not merged) PRs are not automatically closed - they may need rework
|