bmad-auto-copilot 1.2.3 → 1.2.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bmad-auto-copilot",
3
- "version": "1.2.3",
3
+ "version": "1.2.4",
4
4
  "description": "Automated BMAD story development loop using GitHub Copilot CLI — install into any BMAD project",
5
5
  "keywords": [
6
6
  "bmad",
@@ -286,6 +286,13 @@ get_story_state_by_key() {
286
286
  | sed 's/[[:space:]]*$//'
287
287
  }
288
288
 
289
+ get_story_state_token() {
290
+ local raw_state="$1"
291
+
292
+ # Extract leading canonical token (letters/hyphen), normalize to lowercase.
293
+ echo "$raw_state" | sed -E 's/^[[:space:]]*([A-Za-z-]+).*$/\1/' | tr '[:upper:]' '[:lower:]'
294
+ }
295
+
289
296
  # ============================================================
290
297
  # GIT COMMIT
291
298
  # ============================================================
@@ -393,11 +400,17 @@ for ((iteration=1; iteration<=MAX_ITERATIONS; iteration++)); do
393
400
  log "[WARN] Could not determine review story key; skipping auto-commit this iteration" "yellow"
394
401
  else
395
402
  current_state=$(get_story_state_by_key "$review_story_key")
396
- if [[ "$current_state" == "done" ]]; then
403
+ current_state_token=$(get_story_state_token "$current_state")
404
+
405
+ if [[ "$current_state_token" != "$current_state" ]]; then
406
+ log "[WARN] Non-canonical sprint status value for $review_story_key: '$current_state' (parsed token: '$current_state_token')" "yellow"
407
+ fi
408
+
409
+ if [[ "$current_state_token" == "done" ]]; then
397
410
  log "[VERIFIED] Story $review_story_key confirmed DONE" "green"
398
411
  invoke_git_commit "$review_story_key"
399
412
  else
400
- log "[RETRY] Story $review_story_key still in '$current_state' (not done) — will retry next iteration" "yellow"
413
+ log "[RETRY] Story $review_story_key still in '$current_state' (token: '$current_state_token', not done) — will retry next iteration" "yellow"
401
414
  fi
402
415
  fi
403
416
  ;;
@@ -38,6 +38,8 @@ Based on review outcome:
38
38
  - If ALL HIGH and MEDIUM issues are fixed AND all ACs implemented: update status from `review` to `done`
39
39
  - If issues remain unfixable: update status from `review` to `in-progress` (will re-enter dev cycle)
40
40
  - Preserve ALL comments and structure in `_bmad-output/implementation-artifacts/sprint-status.yaml`
41
+ - The status value MUST be a literal token only: exactly `done` or `in-progress` (never prose, counts, or summaries)
42
+ - After saving, re-read the same story entry and verify the value is exactly `done` or `in-progress`; if not, correct it immediately and save again
41
43
 
42
44
  ## Rules
43
45
  - Use best judgment for ALL decisions — never ask the user
@@ -46,3 +48,4 @@ Based on review outcome:
46
48
  - Document issues you cannot auto-fix in the story file
47
49
  - All tests must pass after any fixes
48
50
  - Follow the workflow checklist to verify completeness
51
+ - NEVER write explanatory text into sprint status values; write explanations only in story Dev Agent Record / Change Log