fix: fix: architect creates duplicate sprint pitch for vision issues that already have sub-issues (#486)
This commit is contained in:
parent
1e1bb12d66
commit
1426b1710f
2 changed files with 203 additions and 2 deletions
|
|
@ -53,14 +53,44 @@ For each available pitch slot:
|
|||
1. From the vision issues list, skip any issue that already has an open architect PR
|
||||
(match by checking if any open architect PR body references the vision issue number)
|
||||
2. Skip any issue that already has the `in-progress` label
|
||||
3. From remaining candidates, pick the most unblocking issue first (fewest open
|
||||
3. Check for existing sub-issues filed from this vision issue (see Sub-issue existence check below)
|
||||
4. Check for merged sprint PRs referencing this vision issue (see Merged sprint PR check below)
|
||||
5. From remaining candidates, pick the most unblocking issue first (fewest open
|
||||
dependencies, or earliest created if tied)
|
||||
4. Add to ARCHITECT_TARGET_ISSUES array
|
||||
6. Add to ARCHITECT_TARGET_ISSUES array
|
||||
|
||||
### Sub-issue existence check
|
||||
|
||||
Before selecting a vision issue for pitching, check if it already has sub-issues:
|
||||
|
||||
1. Search for issues whose body contains 'Decomposed from #N' where N is the vision issue number
|
||||
2. Also check for issues filed by architect-bot that reference the vision issue number
|
||||
3. If any sub-issues are open (state != 'closed'), skip this vision issue — it's already being worked on
|
||||
4. If all sub-issues are closed, the vision issue may be ready for a new sprint (next phase)
|
||||
|
||||
API calls:
|
||||
- GET /repos/{owner}/{repo}/issues?labels=vision&state=open — fetch vision issues
|
||||
- GET /repos/{owner}/{repo}/issues — search all issues for 'Decomposed from #N' pattern
|
||||
- Check each issue's state field to determine if open or closed
|
||||
|
||||
### Merged sprint PR check
|
||||
|
||||
Before selecting a vision issue for pitching, check for merged architect PRs:
|
||||
|
||||
1. Search for merged PRs on the ops repo where the body references the vision issue number
|
||||
2. Use: GET /repos/{owner}/{repo}/pulls?state=closed (then filter for merged ones)
|
||||
3. If a merged PR references the vision issue, decomposition already happened — skip this vision issue
|
||||
|
||||
API calls:
|
||||
- GET /repos/{owner}/{repo}/pulls?state=closed — fetch closed PRs from ops repo
|
||||
- Check PR body for references to the vision issue number (e.g., "refs #N" or "#N")
|
||||
|
||||
Skip conditions:
|
||||
- If no vision issues are found, signal PHASE:done
|
||||
- If pitch_budget <= 0 (already 3 open architect PRs), skip pitching — only handle existing PRs
|
||||
- If all vision issues already have open architect PRs, signal PHASE:done
|
||||
- If all vision issues have open sub-issues, skip pitching — decomposition already in progress
|
||||
- If all vision issues have merged sprint PRs, skip pitching — decomposition already completed
|
||||
|
||||
Output:
|
||||
- Sets ARCHITECT_TARGET_ISSUES as a JSON array of issue numbers to pitch (up to 3)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue