sdlc-framework 2.1.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -22
- package/package.json +1 -1
- package/src/commands/close.md +23 -10
- package/src/commands/debug.md +2 -2
- package/src/commands/discuss.md +20 -11
- package/src/commands/fast.md +7 -11
- package/src/commands/fix.md +2 -2
- package/src/commands/help.md +12 -11
- package/src/commands/impl.md +2 -2
- package/src/commands/init.md +3 -3
- package/src/commands/review.md +4 -4
- package/src/commands/spec.md +2 -2
- package/src/commands/status.md +2 -2
- package/src/commands/verify.md +3 -2
- package/src/references/prompt-detection.md +3 -3
- package/src/templates/STATE.md +10 -0
- package/src/workflows/close-phase.md +98 -24
- package/src/workflows/debug-flow.md +13 -2
- package/src/workflows/discuss-phase.md +212 -12
- package/src/workflows/fast-forward.md +45 -8
- package/src/workflows/fix-findings.md +26 -3
- package/src/workflows/impl-phase.md +13 -2
- package/src/workflows/init-project.md +15 -4
- package/src/workflows/review-phase.md +27 -3
- package/src/workflows/spec-phase.md +13 -2
- package/src/workflows/status-session.md +25 -2
- package/src/workflows/verify-phase.md +13 -2
- package/src/commands/research.md +0 -136
- package/src/commands/transition.md +0 -99
- package/src/workflows/research.md +0 -219
- package/src/workflows/transition-phase.md +0 -203
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
<purpose>Transition from one phase to the next within a milestone. Called automatically by close-phase when the last plan in a phase completes. Verifies completeness, updates project state, and commits the phase.</purpose>
|
|
2
|
-
<when_to_use>Triggered automatically when /sdlc:close detects the last plan in a phase is done. Can also be run manually via /sdlc:transition to force a phase transition.</when_to_use>
|
|
3
|
-
<required_reading>.sdlc/STATE.md, .sdlc/ROADMAP.md, .sdlc/PROJECT.md, all SUMMARY.md files in the completing phase</required_reading>
|
|
4
|
-
<loop_context>
|
|
5
|
-
expected_phase: TRANSITION (between phases)
|
|
6
|
-
prior_phase: CLOSE ✓ (last plan in phase)
|
|
7
|
-
next_phase: first SPEC of the next phase, or milestone completion
|
|
8
|
-
</loop_context>
|
|
9
|
-
<process>
|
|
10
|
-
|
|
11
|
-
<step name="verify_phase_completeness" priority="first">
|
|
12
|
-
Read .sdlc/STATE.md. Extract the current phase.
|
|
13
|
-
Read .sdlc/ROADMAP.md. Get the current phase's plan count.
|
|
14
|
-
|
|
15
|
-
List all files in .sdlc/phases/{current_phase}/:
|
|
16
|
-
- Count *-SPEC.md files (plans created)
|
|
17
|
-
- Count *-SUMMARY.md files (plans completed)
|
|
18
|
-
- Count HOTFIX-*-SUMMARY.md files (hotfixes applied)
|
|
19
|
-
|
|
20
|
-
VERIFY: Every SPEC.md has a corresponding SUMMARY.md.
|
|
21
|
-
- If a SPEC exists without a SUMMARY: that plan was not completed.
|
|
22
|
-
- STOP. Display: "Phase transition blocked. Plan {N} has a spec but no summary. Complete it first."
|
|
23
|
-
|
|
24
|
-
VERIFY: Every SUMMARY.md shows all ACs passed.
|
|
25
|
-
- Read each SUMMARY.md. Check the AC results table.
|
|
26
|
-
- If any AC is FAIL: STOP. Display: "Phase transition blocked. Plan {N} has failing ACs."
|
|
27
|
-
|
|
28
|
-
Display:
|
|
29
|
-
```
|
|
30
|
-
Phase {phase} completeness check:
|
|
31
|
-
Plans: {N} created, {N} completed
|
|
32
|
-
Hotfixes: {N}
|
|
33
|
-
All ACs: PASSED
|
|
34
|
-
Phase is ready for transition.
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
WHY: Transitioning with incomplete work means skipping it forever. The completeness check prevents accidental abandonment.
|
|
38
|
-
</step>
|
|
39
|
-
|
|
40
|
-
<step name="verify_state_consistency" priority="second">
|
|
41
|
-
Cross-check three state files for consistency:
|
|
42
|
-
|
|
43
|
-
STATE.MD:
|
|
44
|
-
- current_milestone should match ROADMAP.md's in-progress milestone
|
|
45
|
-
- current_phase should match the phase being completed
|
|
46
|
-
- loop_position should be CLOSE ✓
|
|
47
|
-
|
|
48
|
-
PROJECT.MD:
|
|
49
|
-
- Tech stack should still be accurate (ask user if uncertain)
|
|
50
|
-
- Requirements section should reflect what was built
|
|
51
|
-
|
|
52
|
-
ROADMAP.MD:
|
|
53
|
-
- Current phase should show correct plan count
|
|
54
|
-
- Prior phases in this milestone should all be COMPLETE
|
|
55
|
-
|
|
56
|
-
IF INCONSISTENCY FOUND:
|
|
57
|
-
Display: "State inconsistency: {detail}. Recommend fixing before transitioning."
|
|
58
|
-
Offer to auto-fix obvious inconsistencies (e.g., plan count mismatch).
|
|
59
|
-
Ask for user confirmation before applying fixes.
|
|
60
|
-
|
|
61
|
-
WHY: State drift accumulates silently. Catching it at phase boundaries prevents compounding errors.
|
|
62
|
-
</step>
|
|
63
|
-
|
|
64
|
-
<step name="update_project_md" priority="third">
|
|
65
|
-
Read .sdlc/PROJECT.md.
|
|
66
|
-
|
|
67
|
-
Based on the completed phase's summaries:
|
|
68
|
-
|
|
69
|
-
A. VALIDATE EXISTING REQUIREMENTS:
|
|
70
|
-
For each requirement listed in PROJECT.md:
|
|
71
|
-
- Was it addressed in this phase? (search summaries for related work)
|
|
72
|
-
- If addressed: mark as IMPLEMENTED with reference to plan number
|
|
73
|
-
- If not addressed: leave as-is (future phase responsibility)
|
|
74
|
-
|
|
75
|
-
B. INVALIDATE OUTDATED REQUIREMENTS:
|
|
76
|
-
For each requirement:
|
|
77
|
-
- Does the implementation contradict or supersede it?
|
|
78
|
-
- If yes: mark as SUPERSEDED with explanation
|
|
79
|
-
|
|
80
|
-
C. ADD NEW REQUIREMENTS:
|
|
81
|
-
From decisions and lessons learned in summaries:
|
|
82
|
-
- Were new requirements discovered during implementation?
|
|
83
|
-
- If yes: add them to PROJECT.md with status NOT STARTED
|
|
84
|
-
|
|
85
|
-
Display changes to user before writing:
|
|
86
|
-
```
|
|
87
|
-
PROJECT.md updates:
|
|
88
|
-
- IMPLEMENTED: {requirement} (Plan {N})
|
|
89
|
-
- SUPERSEDED: {requirement} (replaced by {new approach})
|
|
90
|
-
- NEW: {requirement} (discovered in Plan {N})
|
|
91
|
-
|
|
92
|
-
Apply these changes? (yes/no)
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
WHY: PROJECT.md must stay current. Stale requirements mislead future specs. New requirements discovered during implementation must be captured or they are forgotten.
|
|
96
|
-
</step>
|
|
97
|
-
|
|
98
|
-
<step name="update_state_for_next_phase" priority="fourth">
|
|
99
|
-
Read .sdlc/ROADMAP.md. Identify the next phase in the current milestone.
|
|
100
|
-
|
|
101
|
-
IF NEXT PHASE EXISTS:
|
|
102
|
-
Update .sdlc/STATE.md:
|
|
103
|
-
- current_phase: {next phase number and name}
|
|
104
|
-
- current_plan: cleared
|
|
105
|
-
- loop_position: TRANSITION ✓
|
|
106
|
-
- next_required_action: /sdlc:spec
|
|
107
|
-
- Add history entry: "{timestamp} | transition | Phase {old} complete. Transitioning to phase {new}."
|
|
108
|
-
|
|
109
|
-
Update .sdlc/ROADMAP.md:
|
|
110
|
-
- Set completed phase status to COMPLETE with date
|
|
111
|
-
- Set next phase status to IN PROGRESS
|
|
112
|
-
|
|
113
|
-
IF NO NEXT PHASE (this was the last phase in the milestone):
|
|
114
|
-
Update .sdlc/STATE.md:
|
|
115
|
-
- loop_position: TRANSITION ✓
|
|
116
|
-
- next_required_action: /sdlc:close (milestone completion handled inline)
|
|
117
|
-
- Add history entry: "{timestamp} | transition | Phase {current} complete. Last phase in milestone. Trigger milestone completion."
|
|
118
|
-
|
|
119
|
-
Update .sdlc/ROADMAP.md:
|
|
120
|
-
- Set completed phase status to COMPLETE with date
|
|
121
|
-
|
|
122
|
-
WHY: The state machine must always point to exactly one next action. Whether that is the next phase or milestone completion depends on the roadmap.
|
|
123
|
-
</step>
|
|
124
|
-
|
|
125
|
-
<step name="update_roadmap" priority="fifth">
|
|
126
|
-
Update .sdlc/ROADMAP.md with phase completion details:
|
|
127
|
-
|
|
128
|
-
For the completed phase, update the row:
|
|
129
|
-
```
|
|
130
|
-
| {phase-num} | {name} | COMPLETE ({date}) | {plan-count} |
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
Add a phase summary note under the milestone:
|
|
134
|
-
```
|
|
135
|
-
#### Phase {number} Summary
|
|
136
|
-
- Plans executed: {N}
|
|
137
|
-
- Hotfixes: {N}
|
|
138
|
-
- Key deliverables: {from summaries}
|
|
139
|
-
- Duration: {first spec date} to {completion date}
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
WHY: The roadmap is the high-level progress tracker. Completion details help stakeholders understand velocity and scope.
|
|
143
|
-
</step>
|
|
144
|
-
|
|
145
|
-
<step name="create_git_commit" priority="sixth">
|
|
146
|
-
IF the project is a git repository:
|
|
147
|
-
|
|
148
|
-
Check: git status for uncommitted changes.
|
|
149
|
-
|
|
150
|
-
IF UNCOMMITTED CHANGES EXIST:
|
|
151
|
-
Stage all .sdlc/ files: git add .sdlc/
|
|
152
|
-
Stage any source files that were part of the phase
|
|
153
|
-
|
|
154
|
-
Create commit:
|
|
155
|
-
```
|
|
156
|
-
feat({phase-name}): complete phase {number}
|
|
157
|
-
|
|
158
|
-
Phase {number} ({phase-name}) of milestone {milestone-number} is complete.
|
|
159
|
-
|
|
160
|
-
Plans executed: {N}
|
|
161
|
-
Key deliverables:
|
|
162
|
-
- {deliverable 1}
|
|
163
|
-
- {deliverable 2}
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
Display: "Git commit created: {hash}"
|
|
167
|
-
|
|
168
|
-
IF NO UNCOMMITTED CHANGES:
|
|
169
|
-
Display: "No uncommitted changes to commit."
|
|
170
|
-
|
|
171
|
-
WHY: Phase completion is a natural commit point. The commit message documents what was accomplished, making git log useful as a project history.
|
|
172
|
-
</step>
|
|
173
|
-
|
|
174
|
-
<step name="display_result" priority="seventh">
|
|
175
|
-
IF NEXT PHASE EXISTS:
|
|
176
|
-
Display:
|
|
177
|
-
```
|
|
178
|
-
Phase transition complete.
|
|
179
|
-
|
|
180
|
-
Completed: Phase {old-number} — {old-name}
|
|
181
|
-
Plans: {N} executed
|
|
182
|
-
Starting: Phase {new-number} — {new-name}
|
|
183
|
-
|
|
184
|
-
NEXT ACTION REQUIRED: /sdlc:spec
|
|
185
|
-
Run /sdlc:spec to create the first specification for Phase {new-number}.
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
IF MILESTONE COMPLETE (no next phase):
|
|
189
|
-
Display:
|
|
190
|
-
```
|
|
191
|
-
Phase transition complete.
|
|
192
|
-
|
|
193
|
-
Completed: Phase {number} — {name} (LAST PHASE)
|
|
194
|
-
Milestone {milestone-number} — {milestone-name}: ALL PHASES COMPLETE
|
|
195
|
-
|
|
196
|
-
NEXT ACTION REQUIRED: /sdlc:close
|
|
197
|
-
Run /sdlc:close to finalize the milestone.
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
WHY: The display makes the transition visible. Moving to a new phase is a significant moment — the user should know where they are in the broader plan.
|
|
201
|
-
</step>
|
|
202
|
-
|
|
203
|
-
</process>
|