sdlc-framework 1.0.2 → 2.1.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 +41 -16
- package/bin/install.js +6 -5
- package/package.json +2 -2
- package/src/commands/close.md +21 -7
- package/src/commands/debug.md +2 -2
- package/src/commands/discuss.md +81 -0
- package/src/commands/fast.md +50 -5
- package/src/commands/help.md +15 -10
- package/src/commands/impl.md +2 -2
- package/src/commands/init.md +21 -5
- package/src/commands/review.md +2 -2
- package/src/commands/spec.md +2 -2
- package/src/commands/status.md +57 -91
- package/src/commands/transition.md +99 -0
- package/src/commands/verify.md +2 -2
- package/src/references/prompt-detection.md +1 -1
- package/src/templates/PRD.md +89 -0
- package/src/workflows/close-phase.md +1 -1
- package/src/workflows/discuss-phase.md +195 -0
- package/src/workflows/fast-forward.md +58 -7
- package/src/workflows/init-project.md +1 -1
- package/src/workflows/status-session.md +206 -0
- package/src/workflows/transition-phase.md +3 -3
- package/src/commands/hotfix.md +0 -99
- package/src/commands/milestone.md +0 -136
- package/src/commands/pause.md +0 -115
- package/src/commands/resume.md +0 -103
- package/src/workflows/hotfix-flow.md +0 -190
- package/src/workflows/milestone-management.md +0 -169
- package/src/workflows/pause-work.md +0 -153
- package/src/workflows/resume-project.md +0 -159
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
<purpose>Restore a paused session by reading the handoff document, loading context, and directing the user to exactly one next action. Eliminates the cold-start problem when returning to work.</purpose>
|
|
2
|
-
<when_to_use>Run at the start of a new session after /sdlc:pause was used. Also useful when returning to a project after any break, even if /sdlc:pause was not explicitly run.</when_to_use>
|
|
3
|
-
<required_reading>.sdlc/STATE.md, .sdlc/HANDOFF.md (if exists)</required_reading>
|
|
4
|
-
<loop_context>
|
|
5
|
-
expected_phase: RESUME (transitional — immediately routes to the correct phase)
|
|
6
|
-
prior_phase: whatever was active when paused
|
|
7
|
-
next_phase: determined by STATE.md
|
|
8
|
-
</loop_context>
|
|
9
|
-
<process>
|
|
10
|
-
|
|
11
|
-
<step name="read_state" priority="first">
|
|
12
|
-
Read .sdlc/STATE.md.
|
|
13
|
-
|
|
14
|
-
IF .sdlc/ DOES NOT EXIST:
|
|
15
|
-
STOP. Display: "No SDLC project found. Run /sdlc:init to initialize."
|
|
16
|
-
|
|
17
|
-
IF STATE.md DOES NOT EXIST:
|
|
18
|
-
STOP. Display: "STATE.md not found. The .sdlc/ directory may be corrupted. Run /sdlc:init to re-initialize."
|
|
19
|
-
|
|
20
|
-
Extract:
|
|
21
|
-
- Current milestone, phase, plan
|
|
22
|
-
- Loop position
|
|
23
|
-
- Next required action
|
|
24
|
-
- Last history entry
|
|
25
|
-
- paused_at timestamp (if present)
|
|
26
|
-
|
|
27
|
-
WHY: STATE.md is the single source of truth. If it is missing, nothing else works.
|
|
28
|
-
</step>
|
|
29
|
-
|
|
30
|
-
<step name="find_handoff" priority="second">
|
|
31
|
-
Check for .sdlc/HANDOFF.md.
|
|
32
|
-
|
|
33
|
-
IF HANDOFF.md EXISTS:
|
|
34
|
-
Read it. Extract:
|
|
35
|
-
- When the session was paused
|
|
36
|
-
- What was done last session
|
|
37
|
-
- In-progress work details
|
|
38
|
-
- Decisions made
|
|
39
|
-
- Blockers / open questions
|
|
40
|
-
- User context notes
|
|
41
|
-
- Git state at pause time
|
|
42
|
-
|
|
43
|
-
Calculate time since pause: {now} - {paused_at}
|
|
44
|
-
Display: "Last session was {N hours/days} ago."
|
|
45
|
-
|
|
46
|
-
IF HANDOFF.md DOES NOT EXIST:
|
|
47
|
-
This is a cold resume without a formal pause.
|
|
48
|
-
Fall back to STATE.md only.
|
|
49
|
-
Display: "No handoff found. Resuming from STATE.md."
|
|
50
|
-
|
|
51
|
-
Read the most recent files in .sdlc/phases/ to reconstruct context:
|
|
52
|
-
- Most recent SPEC.md, SUMMARY.md, REVIEW.md, or VERIFY.md
|
|
53
|
-
- Build a brief context summary from these files
|
|
54
|
-
|
|
55
|
-
WHY: HANDOFF.md has rich context. Without it, we can still resume but with less context — the state machine still knows the next action.
|
|
56
|
-
</step>
|
|
57
|
-
|
|
58
|
-
<step name="restore_context" priority="third">
|
|
59
|
-
Present the restored context to the user:
|
|
60
|
-
|
|
61
|
-
```
|
|
62
|
-
=== SESSION RESUMED ===
|
|
63
|
-
|
|
64
|
-
Project: {from PROJECT.md}
|
|
65
|
-
Milestone: {number} — {name}
|
|
66
|
-
Phase: {number} — {name}
|
|
67
|
-
Plan: {number} — {title, if active}
|
|
68
|
-
|
|
69
|
-
Loop position: {position}
|
|
70
|
-
Last action: {from history}
|
|
71
|
-
|
|
72
|
-
{IF HANDOFF EXISTS:}
|
|
73
|
-
Last session summary:
|
|
74
|
-
- {what was done}
|
|
75
|
-
- {what was done}
|
|
76
|
-
|
|
77
|
-
In-progress:
|
|
78
|
-
- {task/AC status}
|
|
79
|
-
|
|
80
|
-
Decisions from last session:
|
|
81
|
-
- {decision}
|
|
82
|
-
|
|
83
|
-
Blockers:
|
|
84
|
-
- {blocker, if any}
|
|
85
|
-
|
|
86
|
-
User notes:
|
|
87
|
-
- {user context, if any}
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
IF BLOCKERS WERE RECORDED:
|
|
91
|
-
Ask: "These blockers were noted last session: {blockers}. Are they resolved?"
|
|
92
|
-
If resolved: note resolution and proceed.
|
|
93
|
-
If not resolved: "These blockers may affect the next action. Proceed anyway or address them first?"
|
|
94
|
-
|
|
95
|
-
WHY: Presenting context upfront saves the user from having to re-read files. The blocker check prevents wasting time on work that is still blocked.
|
|
96
|
-
</step>
|
|
97
|
-
|
|
98
|
-
<step name="check_git_state" priority="fourth">
|
|
99
|
-
IF a git repository exists:
|
|
100
|
-
|
|
101
|
-
Run: git status
|
|
102
|
-
|
|
103
|
-
Compare current git state to the handoff's recorded git state:
|
|
104
|
-
- Is the branch the same?
|
|
105
|
-
- Are there new commits since the pause? (someone else may have pushed)
|
|
106
|
-
- Are there uncommitted changes or stashed changes?
|
|
107
|
-
|
|
108
|
-
IF BRANCH CHANGED:
|
|
109
|
-
Display: "WARNING: You are on branch {current} but the handoff was on branch {paused}. Switch back?"
|
|
110
|
-
|
|
111
|
-
IF NEW COMMITS EXIST:
|
|
112
|
-
Display: "New commits since last session: {count}. These may affect in-progress work."
|
|
113
|
-
Run: git log --oneline {paused_commit}..HEAD
|
|
114
|
-
Display the new commits.
|
|
115
|
-
|
|
116
|
-
IF STASHED CHANGES:
|
|
117
|
-
Ask: "Stashed changes from last session exist. Pop the stash to restore them? (yes/no)"
|
|
118
|
-
If yes: run git stash pop
|
|
119
|
-
|
|
120
|
-
WHY: Git state can drift between sessions. Catching mismatches early prevents confusion when code does not behave as expected.
|
|
121
|
-
</step>
|
|
122
|
-
|
|
123
|
-
<step name="determine_next_action" priority="fifth">
|
|
124
|
-
Read next_required_action from STATE.md. This is the SINGLE next action.
|
|
125
|
-
|
|
126
|
-
MAP the action to a clear instruction:
|
|
127
|
-
|
|
128
|
-
/sdlc:spec → "Create the next specification"
|
|
129
|
-
/sdlc:impl → "Implement the current specification"
|
|
130
|
-
/sdlc:verify → "Verify acceptance criteria"
|
|
131
|
-
/sdlc:review → "Review for engineering law compliance"
|
|
132
|
-
/sdlc:close → "Close the current loop"
|
|
133
|
-
/sdlc:transition → "Transition to the next phase"
|
|
134
|
-
/sdlc:milestone → "Complete or create a milestone"
|
|
135
|
-
|
|
136
|
-
WHY: Exactly ONE next action. Not two options. Not "you could do X or Y." The state machine has already decided. The user just needs to execute it.
|
|
137
|
-
</step>
|
|
138
|
-
|
|
139
|
-
<step name="archive_handoff" priority="sixth">
|
|
140
|
-
IF HANDOFF.md was consumed:
|
|
141
|
-
Move it to .sdlc/HANDOFF-{timestamp}.md.archived (rename, do not delete)
|
|
142
|
-
This prevents the next resume from re-reading stale context.
|
|
143
|
-
|
|
144
|
-
Update .sdlc/STATE.md:
|
|
145
|
-
- Remove paused_at field (session is now active)
|
|
146
|
-
- Add history entry: "{timestamp} | resume | Resumed from {loop_position}. Time since pause: {duration}."
|
|
147
|
-
|
|
148
|
-
Display:
|
|
149
|
-
```
|
|
150
|
-
Resumed at: {loop_position}
|
|
151
|
-
|
|
152
|
-
NEXT ACTION REQUIRED: {next_required_action}
|
|
153
|
-
Run {next_required_action} to continue.
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
WHY: Archiving (not deleting) the handoff preserves the audit trail while preventing stale context from confusing future resumes.
|
|
157
|
-
</step>
|
|
158
|
-
|
|
159
|
-
</process>
|