Commit 9816f90
authored
Re-validate spec quality checklist after clarify updates spec (#2715)
* Re-validate spec quality checklist after clarify updates spec
After clarify modifies spec.md, the existing checklists/requirements.md
(generated by specify) can become stale. Items like 'No [NEEDS
CLARIFICATION] markers remain' may now pass, and newly added requirements
aren't reflected in the checklist evaluation.
Add step 8 to the clarify command that re-validates the spec quality
checklist against the updated spec after each clarification session:
- Check/uncheck items based on current spec state
- Report before/after pass counts in the completion report
- Skip silently if no checklist exists
Fixes #2693
* Address review: scope to checkbox lines, use FEATURE_DIR path
- Constrain re-validation to GitHub task-list checkbox lines only
(- [ ] / - [x] outside code fences), ignoring headings, notes,
and non-checkbox content
- Define pass counts as checked/total checkbox items
- Use FEATURE_DIR/checklists/requirements.md in Done When for
consistency with the rest of the template
* Address review: handle regressions in checklist revalidation
- Clarify that each checkbox is set based solely on current spec state,
regardless of prior marker (checked->unchecked is possible)
- Completion report now lists both newly passing items and regressions
(checked->unchecked) so users see what became non-compliant
* Address review: case-insensitive checkboxes, preserve file verbatim
- Accept [x], [X], and leading whitespace for nested task items
- Explicitly state only the [ ]/[x] marker is toggled; all other
file content (headings, metadata, notes, ordering, whitespace)
must remain unchanged to avoid noisy diffs
* Address review: track per-item state, preserve marker case
- Add explicit before-snapshot step to capture each item's prior
marker state before re-evaluation
- Compute three lists for the report: newly passing, regressions,
and still unchecked
- Only toggle markers whose checked/unchecked state actually changes;
preserve existing case ([x]/[X]) when state is unchanged to avoid
cosmetic diffs1 parent 3cb7027 commit 9816f90
1 file changed
Lines changed: 22 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
197 | 197 | | |
198 | 198 | | |
199 | 199 | | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
200 | 219 | | |
201 | 220 | | |
202 | 221 | | |
| |||
248 | 267 | | |
249 | 268 | | |
250 | 269 | | |
| 270 | + | |
251 | 271 | | |
252 | 272 | | |
253 | 273 | | |
254 | 274 | | |
255 | 275 | | |
256 | 276 | | |
257 | 277 | | |
| 278 | + | |
258 | 279 | | |
259 | | - | |
| 280 | + | |
0 commit comments