You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Switch SDD workflow from roadmap-based to GitHub issue-driven
Replace the roadmap.md phase-picking flow with GitHub issue discovery.
The /sdd-plan-next-phase command now searches for epics labeled `epic`
and `refined` that are unassigned and have all dependency issues
resolved (marked `done`). On selection, it assigns the epic and creates
a branch. The /sdd-ship command offers to label the epic as `done`
after PR creation.
Signed-off-by: Per G. da Silva <pegoncal@redhat.com>
Copy file name to clipboardExpand all lines: .claude/commands/sdd-implement.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,8 @@
1
-
Implement the current phase spec for operator-controller.
1
+
Implement the current epic spec for operator-controller.
2
2
3
3
## Steps
4
4
5
-
1. Identify the active phase spec. Look for a `specs/*/plan.md` file on the current branch. If multiple exist or none are found, use AskUserQuestion to clarify which phase to implement.
5
+
1. Identify the active epic spec. Look for a `specs/*/plan.md` file on the current branch. If multiple exist or none are found, use AskUserQuestion to clarify which epic to implement.
Plan the next development phase for operator-controller.
1
+
Plan the next development phase for operator-controller by selecting an eligible GitHub epic.
2
2
3
3
## Steps
4
4
@@ -9,31 +9,46 @@ Plan the next development phase for operator-controller.
9
9
git checkout main && git pull upstream main
10
10
```
11
11
12
-
3. Read `specs/roadmap.md` and find the next undefined phase (look for "TBD" or the last numbered phase and increment).
12
+
3. Search for eligible epics on the upstream repository. An eligible epic has labels `epic` and `refined`, is unassigned, and has no unresolved dependencies:
13
+
```
14
+
gh issue list --repo operator-framework/operator-controller --label epic --label refined --assignee "" --state open --json number,title,body,labels,url --limit 20
15
+
```
16
+
17
+
4. For each candidate epic, check its linked issues to verify dependencies are resolved. Use the GitHub API to inspect linked issues:
18
+
```
19
+
gh api repos/operator-framework/operator-controller/issues/{number}/timeline --jq '.[] | select(.event=="cross-referenced" or .event=="connected")'
20
+
```
21
+
An epic is eligible only if all blocking/dependency issues have the `done` label. Epics with no dependencies are also eligible.
22
+
23
+
5. Present the eligible epics to the user via AskUserQuestion, showing the issue number, title, and a brief summary. Let the user pick which epic to work on.
24
+
25
+
6. Assign the selected epic to the current git user:
5. Use AskUserQuestion to gather details about the upcoming phase:
20
-
- What is the focus area for this phase?
21
-
- What are the key deliverables (3-6 items)?
22
-
- Are there any dependencies or blockers?
23
-
- What validation criteria define "done" for this phase?
35
+
8. Use AskUserQuestion to gather implementation details about the epic:
36
+
- What is the approach for this epic?
37
+
- How should the work be broken into task groups?
38
+
- What validation criteria define "done"?
24
39
25
-
6. Create the phase spec directory and files:
40
+
9. Create the phase spec directory and files:
26
41
```
27
-
specs/YYYY-MM-DD-phase-{N}-{name}/
28
-
plan.md — overview, goals, approach
42
+
specs/{epic-number}-{name}/
43
+
plan.md — overview, goals, approach (link back to the GitHub issue)
29
44
requirements.md — detailed requirements and task groups
30
45
validation.md — acceptance criteria and test plan
31
46
```
32
47
33
-
7. Reference `specs/mission.md` for alignment with project goals and design principles. Reference `specs/tech-stack.md` for implementation constraints (build commands, test frameworks, CI requirements).
48
+
10. Reference `specs/mission.md` for alignment with project goals and design principles. Reference `specs/tech-stack.md` for implementation constraints (build commands, test frameworks, CI requirements).
34
49
35
-
8. After writing the spec files, run a self-review:
36
-
- Check internal consistency across plan, requirements, and validation
37
-
- Verify alignment with mission goals and non-goals
38
-
- Ensure deliverables are concrete and testable
39
-
- Flag any gaps or ambiguities using AskUserQuestion
50
+
11. After writing the spec files, run a self-review:
51
+
- Check internal consistency across plan, requirements, and validation
52
+
- Verify alignment with mission goals and non-goals
53
+
- Ensure deliverables are concrete and testable
54
+
- Flag any gaps or ambiguities using AskUserQuestion
Copy file name to clipboardExpand all lines: .claude/commands/sdd-ship.md
+6-1Lines changed: 6 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -80,4 +80,9 @@ Verify, commit, and publish the current branch for operator-controller.
80
80
)"
81
81
```
82
82
83
-
6. Report the PR URL when done.
83
+
6. If this branch is linked to a GitHub epic (check `specs/*/plan.md` for an issue reference), use AskUserQuestion to ask whether to add the `done` label to the epic:
Copy file name to clipboardExpand all lines: specs/roadmap.md
+5-2Lines changed: 5 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -84,6 +84,9 @@ This document captures the historical evolution of operator-controller in phases
84
84
85
85
## Next Steps
86
86
87
-
<!-- The team will iterate on these. Add upcoming phases here as priorities become clear. -->
87
+
Future work is tracked via GitHub issues on the upstream repository rather than phases in this file. The `/sdd-plan-next-phase` command discovers the next available epic automatically.
88
88
89
-
-**Phase 7:**_TBD - to be defined by the team_
89
+
An issue is eligible for work when it has:
90
+
- Labels: `epic` and `refined`
91
+
- No assignee
92
+
- No unresolved dependencies (all linked blocking issues have the `done` label)
0 commit comments