dev-playbooks-cn 2.3.0 → 2.3.2

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 CHANGED
@@ -72,6 +72,23 @@ AI 编码助手很强大,但往往**不可预测**:
72
72
 
73
73
  ## 快速开始
74
74
 
75
+ **不知道怎么用?** 查看 [使用指南](docs/使用指南.md) 或直接运行:
76
+
77
+ ```bash
78
+ /devbooks-delivery-workflow
79
+ ```
80
+
81
+ 这个 skill 会自动编排完整的开发闭环,从提案到归档。
82
+
83
+ ### 文档
84
+
85
+ - [使用指南](docs/使用指南.md) - 最佳实践和推荐工作流程
86
+ - [Skill 详解](docs/Skill详解.md) - 19 个 Skills 的特色和功能
87
+ - [配置指南](dev-playbooks/docs/DevBooks配置指南.md) - 配置说明
88
+ - [推荐 MCP](dev-playbooks/docs/推荐MCP.md) - MCP 服务器推荐
89
+
90
+ ---
91
+
75
92
  ### 支持的 AI 工具
76
93
 
77
94
  | 工具 | 支持级别 | 配置文件 |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dev-playbooks-cn",
3
- "version": "2.3.0",
3
+ "version": "2.3.2",
4
4
  "description": "AI-driven spec-based development workflow",
5
5
  "keywords": [
6
6
  "devbooks",
@@ -321,6 +321,11 @@ check_layering_constraints() {
321
321
  return 0
322
322
  fi
323
323
 
324
+ if ! command -v rg >/dev/null 2>&1; then
325
+ echo "error: missing dependency: rg (ripgrep) required for layering checks" >&2
326
+ return 2
327
+ fi
328
+
324
329
  # Get changed files
325
330
  local changed_files=""
326
331
  if [[ -d "${project_root}/.git" ]]; then
@@ -403,6 +408,11 @@ check_circular_dependencies() {
403
408
  # Fallback: use simple grep to detect common circular patterns
404
409
  echo "info: madge not available, using basic circular detection"
405
410
 
411
+ if ! command -v rg >/dev/null 2>&1; then
412
+ echo "error: missing dependency: rg (ripgrep) required for fallback circular checks" >&2
413
+ return 2
414
+ fi
415
+
406
416
  # Check if files both import each other (simple heuristic)
407
417
  if [[ -d "${project_root}/.git" ]]; then
408
418
  local changed_files
@@ -499,42 +509,73 @@ check_hotspot_changes() {
499
509
 
500
510
  exit_code=0
501
511
 
512
+ update_exit_code() {
513
+ local rc="$1"
514
+
515
+ if [[ $rc -eq 0 ]]; then
516
+ return 0
517
+ fi
518
+
519
+ # Preserve usage/tooling errors for callers that rely on exit code semantics.
520
+ if [[ $rc -eq 2 ]]; then
521
+ exit_code=2
522
+ return 0
523
+ fi
524
+
525
+ # If we have already hit a tooling error, keep 2 as the final status.
526
+ if [[ $exit_code -ne 2 ]]; then
527
+ exit_code=1
528
+ fi
529
+
530
+ return 0
531
+ }
532
+
502
533
  # Role permission check
503
534
  if [[ -n "$role" ]]; then
504
535
  change_path=$(dirname "$file")
505
- if ! check_role_permissions "$role" "$change_path"; then
506
- exit_code=1
536
+ if check_role_permissions "$role" "$change_path"; then
537
+ :
538
+ else
539
+ update_exit_code $?
507
540
  fi
508
541
  fi
509
542
 
510
543
  # Lockfile check
511
544
  if [[ "$check_lockfile" == "true" ]]; then
512
545
  change_path=$(dirname "$file")
513
- if ! check_lockfile_changes "$change_path"; then
514
- exit_code=1
546
+ if check_lockfile_changes "$change_path"; then
547
+ :
548
+ else
549
+ update_exit_code $?
515
550
  fi
516
551
  fi
517
552
 
518
553
  # Engineering system change check
519
554
  if [[ "$check_engineering" == "true" ]]; then
520
555
  change_path=$(dirname "$file")
521
- if ! check_engineering_changes "$change_path"; then
522
- exit_code=1
556
+ if check_engineering_changes "$change_path"; then
557
+ :
558
+ else
559
+ update_exit_code $?
523
560
  fi
524
561
  fi
525
562
 
526
563
  # Layering constraint check (Dependency Guard)
527
564
  if [[ "$check_layers" == "true" ]]; then
528
565
  change_path=$(dirname "$file")
529
- if ! check_layering_constraints "$change_path"; then
530
- exit_code=1
566
+ if check_layering_constraints "$change_path"; then
567
+ :
568
+ else
569
+ update_exit_code $?
531
570
  fi
532
571
  fi
533
572
 
534
573
  # Circular dependency check
535
574
  if [[ "$check_cycles" == "true" ]]; then
536
- if ! check_circular_dependencies; then
537
- exit_code=1
575
+ if check_circular_dependencies; then
576
+ :
577
+ else
578
+ update_exit_code $?
538
579
  fi
539
580
  fi
540
581