@leeovery/claude-technical-workflows 2.0.37 → 2.0.38
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.
|
@@ -56,12 +56,13 @@ This outputs structured YAML. Parse it to understand:
|
|
|
56
56
|
- Specifications with `status: superseded` should be noted but excluded from active counts
|
|
57
57
|
|
|
58
58
|
**From `cache` section:**
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
-
|
|
64
|
-
-
|
|
59
|
+
- `status` - one of three values:
|
|
60
|
+
- `"valid"` - cache exists and checksums match (safe to load)
|
|
61
|
+
- `"stale"` - cache exists but discussions have changed (needs re-analysis)
|
|
62
|
+
- `"none"` - no cache file exists
|
|
63
|
+
- `reason` - explanation of the status
|
|
64
|
+
- `generated` - when the cache was created (null if none)
|
|
65
|
+
- `anchored_names` - grouping names that have existing specifications and MUST be preserved in any regeneration
|
|
65
66
|
|
|
66
67
|
**IMPORTANT**: Use ONLY this script for discovery. Do NOT run additional bash commands (ls, head, cat, etc.) to gather state - the script provides everything needed.
|
|
67
68
|
|
|
@@ -145,7 +146,31 @@ Proceeding with this discussion.
|
|
|
145
146
|
|
|
146
147
|
#### If MULTIPLE concluded discussions exist with NO existing specifications
|
|
147
148
|
|
|
148
|
-
|
|
149
|
+
Check `cache.status` from discovery.
|
|
150
|
+
|
|
151
|
+
##### If `cache.status: "valid"`
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
{N} concluded discussions found.
|
|
155
|
+
|
|
156
|
+
Previous analysis available from {cache.generated}. Loading groupings...
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
→ Skip directly to **Step 7: Present Grouping Options**.
|
|
160
|
+
|
|
161
|
+
##### If `cache.status: "stale"`
|
|
162
|
+
|
|
163
|
+
```
|
|
164
|
+
{N} concluded discussions found.
|
|
165
|
+
|
|
166
|
+
Note: A previous grouping analysis exists but is now outdated - discussion documents have changed since it was created. Re-analysis is required, but existing specification names will be preserved where groupings overlap.
|
|
167
|
+
|
|
168
|
+
Analyzing discussions for natural groupings...
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
→ Proceed to **Step 4: Gather Analysis Context**.
|
|
172
|
+
|
|
173
|
+
##### If `cache.status: "none"`
|
|
149
174
|
|
|
150
175
|
```
|
|
151
176
|
{N} concluded discussions found.
|
|
@@ -157,6 +182,39 @@ Analyzing discussions for natural groupings...
|
|
|
157
182
|
|
|
158
183
|
#### If MULTIPLE concluded discussions exist WITH existing specifications
|
|
159
184
|
|
|
185
|
+
Check `cache.status` from discovery to determine which options to present.
|
|
186
|
+
|
|
187
|
+
##### If `cache.status: "valid"`
|
|
188
|
+
|
|
189
|
+
```
|
|
190
|
+
What would you like to do?
|
|
191
|
+
|
|
192
|
+
1. **Continue an existing specification** - Resume work on a spec in progress
|
|
193
|
+
2. **Select from groupings** - Choose from previously analyzed groupings ({cache.generated})
|
|
194
|
+
3. **Re-analyze groupings** - Fresh analysis of discussion relationships
|
|
195
|
+
|
|
196
|
+
Which approach?
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
**STOP.** Wait for user response.
|
|
200
|
+
|
|
201
|
+
##### If `cache.status: "stale"`
|
|
202
|
+
|
|
203
|
+
```
|
|
204
|
+
What would you like to do?
|
|
205
|
+
|
|
206
|
+
Note: A previous grouping analysis exists but is now outdated - discussion documents have changed since it was created. Re-analysis is required, but existing specification names will be preserved where groupings overlap.
|
|
207
|
+
|
|
208
|
+
1. **Continue an existing specification** - Resume work on a spec in progress
|
|
209
|
+
2. **Assess for groupings** - Re-analyze discussions for combinations
|
|
210
|
+
|
|
211
|
+
Which approach?
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
**STOP.** Wait for user response.
|
|
215
|
+
|
|
216
|
+
##### If `cache.status: "none"`
|
|
217
|
+
|
|
160
218
|
```
|
|
161
219
|
What would you like to do?
|
|
162
220
|
|
|
@@ -179,7 +237,22 @@ Which specification would you like to continue?
|
|
|
179
237
|
|
|
180
238
|
**STOP.** Wait for user to pick, then skip to **Step 9**.
|
|
181
239
|
|
|
182
|
-
#### If "
|
|
240
|
+
#### If "Select from groupings" (valid cache path)
|
|
241
|
+
|
|
242
|
+
Load groupings from cache and → Skip directly to **Step 7: Present Grouping Options**.
|
|
243
|
+
|
|
244
|
+
(Context was already gathered when the analysis was created - no need to ask again.)
|
|
245
|
+
|
|
246
|
+
#### If "Re-analyze groupings"
|
|
247
|
+
|
|
248
|
+
Delete the existing cache to force regeneration:
|
|
249
|
+
```bash
|
|
250
|
+
rm docs/workflow/.cache/discussion-consolidation-analysis.md
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
→ Proceed to **Step 4: Gather Analysis Context**.
|
|
254
|
+
|
|
255
|
+
#### If "Assess for groupings" (no valid cache path)
|
|
183
256
|
|
|
184
257
|
→ Proceed to **Step 4: Gather Analysis Context**.
|
|
185
258
|
|
|
@@ -202,25 +275,25 @@ For example:
|
|
|
202
275
|
|
|
203
276
|
---
|
|
204
277
|
|
|
205
|
-
## Step 5: Check Cache
|
|
278
|
+
## Step 5: Check Cache Status
|
|
206
279
|
|
|
207
|
-
Check
|
|
280
|
+
Check `cache.status` from discovery.
|
|
208
281
|
|
|
209
|
-
#### If cache
|
|
282
|
+
#### If `cache.status: "valid"`
|
|
210
283
|
|
|
211
284
|
```
|
|
212
285
|
Using cached analysis
|
|
213
286
|
|
|
214
|
-
Discussion documents unchanged since last analysis ({
|
|
287
|
+
Discussion documents unchanged since last analysis ({cache.generated}).
|
|
215
288
|
Loading previously identified groupings...
|
|
216
289
|
```
|
|
217
290
|
|
|
218
291
|
Load groupings from cache and → Skip to **Step 7: Present Grouping Options**.
|
|
219
292
|
|
|
220
|
-
#### If cache
|
|
293
|
+
#### If `cache.status: "stale"` or `"none"`
|
|
221
294
|
|
|
222
295
|
```
|
|
223
|
-
{
|
|
296
|
+
{cache.reason}
|
|
224
297
|
|
|
225
298
|
Analyzing discussions...
|
|
226
299
|
```
|
package/package.json
CHANGED
|
@@ -121,16 +121,35 @@ echo ""
|
|
|
121
121
|
#
|
|
122
122
|
# CACHE STATE
|
|
123
123
|
#
|
|
124
|
+
# status: "valid" | "stale" | "none"
|
|
125
|
+
# - valid: cache exists and checksums match
|
|
126
|
+
# - stale: cache exists but discussions have changed
|
|
127
|
+
# - none: no cache file exists
|
|
128
|
+
#
|
|
124
129
|
echo "cache:"
|
|
125
130
|
|
|
126
131
|
if [ -f "$CACHE_FILE" ]; then
|
|
127
|
-
echo " exists: true"
|
|
128
|
-
|
|
129
132
|
cached_checksum=$(extract_field "$CACHE_FILE" "checksum")
|
|
130
133
|
cached_date=$(extract_field "$CACHE_FILE" "generated")
|
|
131
134
|
|
|
132
|
-
|
|
133
|
-
|
|
135
|
+
# Determine status based on checksum comparison
|
|
136
|
+
if [ -d "$DISCUSSION_DIR" ] && [ -n "$(ls -A "$DISCUSSION_DIR" 2>/dev/null)" ]; then
|
|
137
|
+
current_checksum=$(cat "$DISCUSSION_DIR"/*.md 2>/dev/null | md5sum | cut -d' ' -f1)
|
|
138
|
+
|
|
139
|
+
if [ "$cached_checksum" = "$current_checksum" ]; then
|
|
140
|
+
echo " status: \"valid\""
|
|
141
|
+
echo " reason: \"checksums match\""
|
|
142
|
+
else
|
|
143
|
+
echo " status: \"stale\""
|
|
144
|
+
echo " reason: \"discussions have changed since cache was generated\""
|
|
145
|
+
fi
|
|
146
|
+
else
|
|
147
|
+
echo " status: \"stale\""
|
|
148
|
+
echo " reason: \"no discussions to compare\""
|
|
149
|
+
fi
|
|
150
|
+
|
|
151
|
+
echo " checksum: \"${cached_checksum:-unknown}\""
|
|
152
|
+
echo " generated: \"${cached_date:-unknown}\""
|
|
134
153
|
|
|
135
154
|
# Extract anchored names (groupings that have existing specs)
|
|
136
155
|
# These are the grouping names from the cache that have corresponding specs
|
|
@@ -152,16 +171,17 @@ if [ -f "$CACHE_FILE" ]; then
|
|
|
152
171
|
echo " [] # No anchored names found"
|
|
153
172
|
fi
|
|
154
173
|
else
|
|
155
|
-
echo "
|
|
156
|
-
echo "
|
|
157
|
-
echo "
|
|
174
|
+
echo " status: \"none\""
|
|
175
|
+
echo " reason: \"no cache exists\""
|
|
176
|
+
echo " checksum: null"
|
|
177
|
+
echo " generated: null"
|
|
158
178
|
echo " anchored_names: []"
|
|
159
179
|
fi
|
|
160
180
|
|
|
161
181
|
echo ""
|
|
162
182
|
|
|
163
183
|
#
|
|
164
|
-
# CURRENT
|
|
184
|
+
# CURRENT STATE
|
|
165
185
|
#
|
|
166
186
|
echo "current_state:"
|
|
167
187
|
|
|
@@ -184,32 +204,3 @@ else
|
|
|
184
204
|
echo " discussions_checksum: null"
|
|
185
205
|
echo " concluded_discussion_count: 0"
|
|
186
206
|
fi
|
|
187
|
-
|
|
188
|
-
echo ""
|
|
189
|
-
|
|
190
|
-
#
|
|
191
|
-
# CHECKSUM COMPARISON
|
|
192
|
-
#
|
|
193
|
-
echo "cache_validity:"
|
|
194
|
-
|
|
195
|
-
if [ -f "$CACHE_FILE" ]; then
|
|
196
|
-
cached_checksum=$(extract_field "$CACHE_FILE" "checksum")
|
|
197
|
-
|
|
198
|
-
if [ -d "$DISCUSSION_DIR" ] && [ -n "$(ls -A "$DISCUSSION_DIR" 2>/dev/null)" ]; then
|
|
199
|
-
current_checksum=$(cat "$DISCUSSION_DIR"/*.md 2>/dev/null | md5sum | cut -d' ' -f1)
|
|
200
|
-
|
|
201
|
-
if [ "$cached_checksum" = "$current_checksum" ]; then
|
|
202
|
-
echo " is_valid: true"
|
|
203
|
-
echo " reason: \"checksums match\""
|
|
204
|
-
else
|
|
205
|
-
echo " is_valid: false"
|
|
206
|
-
echo " reason: \"discussions have changed since cache was generated\""
|
|
207
|
-
fi
|
|
208
|
-
else
|
|
209
|
-
echo " is_valid: false"
|
|
210
|
-
echo " reason: \"no discussions to compare\""
|
|
211
|
-
fi
|
|
212
|
-
else
|
|
213
|
-
echo " is_valid: false"
|
|
214
|
-
echo " reason: \"no cache exists\""
|
|
215
|
-
fi
|