@sdd-method/sdd-cli 1.36.2 → 1.38.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.
Files changed (104) hide show
  1. package/dist/lib/catalogue/aggregate.d.ts +2 -2
  2. package/dist/lib/catalogue/aggregate.d.ts.map +1 -1
  3. package/dist/lib/catalogue/aggregate.js +15 -3
  4. package/dist/lib/catalogue/aggregate.js.map +1 -1
  5. package/dist/lib/catalogue/baseline-check.d.ts.map +1 -1
  6. package/dist/lib/catalogue/baseline-check.js +17 -2
  7. package/dist/lib/catalogue/baseline-check.js.map +1 -1
  8. package/dist/lib/catalogue/build.d.ts.map +1 -1
  9. package/dist/lib/catalogue/build.js +99 -4
  10. package/dist/lib/catalogue/build.js.map +1 -1
  11. package/dist/lib/catalogue/builders/data-items.d.ts +37 -0
  12. package/dist/lib/catalogue/builders/data-items.d.ts.map +1 -0
  13. package/dist/lib/catalogue/builders/data-items.js +326 -0
  14. package/dist/lib/catalogue/builders/data-items.js.map +1 -0
  15. package/dist/lib/catalogue/builders/events.d.ts.map +1 -1
  16. package/dist/lib/catalogue/builders/events.js +27 -2
  17. package/dist/lib/catalogue/builders/events.js.map +1 -1
  18. package/dist/lib/catalogue/builders/feature-tree-walker.d.ts +7 -0
  19. package/dist/lib/catalogue/builders/feature-tree-walker.d.ts.map +1 -1
  20. package/dist/lib/catalogue/builders/feature-tree-walker.js +54 -5
  21. package/dist/lib/catalogue/builders/feature-tree-walker.js.map +1 -1
  22. package/dist/lib/catalogue/builders/repositories.js +48 -13
  23. package/dist/lib/catalogue/builders/repositories.js.map +1 -1
  24. package/dist/lib/catalogue/canonical-schema.yaml +229 -2
  25. package/dist/lib/catalogue/coverage-render.d.ts.map +1 -1
  26. package/dist/lib/catalogue/coverage-render.js +30 -0
  27. package/dist/lib/catalogue/coverage-render.js.map +1 -1
  28. package/dist/lib/catalogue/data-item-coverage.d.ts +13 -0
  29. package/dist/lib/catalogue/data-item-coverage.d.ts.map +1 -0
  30. package/dist/lib/catalogue/data-item-coverage.js +142 -0
  31. package/dist/lib/catalogue/data-item-coverage.js.map +1 -0
  32. package/dist/lib/catalogue/engine-validator.d.ts +6 -0
  33. package/dist/lib/catalogue/engine-validator.d.ts.map +1 -1
  34. package/dist/lib/catalogue/engine-validator.js +17 -0
  35. package/dist/lib/catalogue/engine-validator.js.map +1 -1
  36. package/dist/lib/catalogue/graph-projection.d.ts +8 -0
  37. package/dist/lib/catalogue/graph-projection.d.ts.map +1 -1
  38. package/dist/lib/catalogue/graph-projection.js +13 -0
  39. package/dist/lib/catalogue/graph-projection.js.map +1 -1
  40. package/dist/lib/catalogue/graph-run.d.ts +2 -9
  41. package/dist/lib/catalogue/graph-run.d.ts.map +1 -1
  42. package/dist/lib/catalogue/graph-run.js +6 -11
  43. package/dist/lib/catalogue/graph-run.js.map +1 -1
  44. package/dist/lib/catalogue/impact-run.d.ts.map +1 -1
  45. package/dist/lib/catalogue/impact-run.js +1 -2
  46. package/dist/lib/catalogue/impact-run.js.map +1 -1
  47. package/dist/lib/catalogue/manifest-loader.d.ts +2 -0
  48. package/dist/lib/catalogue/manifest-loader.d.ts.map +1 -1
  49. package/dist/lib/catalogue/manifest-loader.js +9 -0
  50. package/dist/lib/catalogue/manifest-loader.js.map +1 -1
  51. package/dist/lib/catalogue/platform-scope.d.ts +2 -0
  52. package/dist/lib/catalogue/platform-scope.d.ts.map +1 -0
  53. package/dist/lib/catalogue/platform-scope.js +7 -0
  54. package/dist/lib/catalogue/platform-scope.js.map +1 -0
  55. package/dist/lib/catalogue/rubric-coverage-map.yaml +42 -0
  56. package/dist/lib/catalogue/scores-coverage.d.ts +26 -1
  57. package/dist/lib/catalogue/scores-coverage.d.ts.map +1 -1
  58. package/dist/lib/catalogue/scores-coverage.js +38 -0
  59. package/dist/lib/catalogue/scores-coverage.js.map +1 -1
  60. package/dist/lib/catalogue/validate.d.ts.map +1 -1
  61. package/dist/lib/catalogue/validate.js +33 -9
  62. package/dist/lib/catalogue/validate.js.map +1 -1
  63. package/dist/lib/conformance/index.d.ts +6 -0
  64. package/dist/lib/conformance/index.d.ts.map +1 -1
  65. package/dist/lib/conformance/index.js +56 -5
  66. package/dist/lib/conformance/index.js.map +1 -1
  67. package/dist/lib/metamodel/rule-ids.d.ts.map +1 -1
  68. package/dist/lib/metamodel/rule-ids.js +3 -0
  69. package/dist/lib/metamodel/rule-ids.js.map +1 -1
  70. package/dist/lib/snapshot/catalogue-diff.d.ts.map +1 -1
  71. package/dist/lib/snapshot/catalogue-diff.js +15 -1
  72. package/dist/lib/snapshot/catalogue-diff.js.map +1 -1
  73. package/dist/lib/snapshot/verify.d.ts.map +1 -1
  74. package/dist/lib/snapshot/verify.js +6 -0
  75. package/dist/lib/snapshot/verify.js.map +1 -1
  76. package/dist/lib/sync/adr-transitions.d.ts +25 -1
  77. package/dist/lib/sync/adr-transitions.d.ts.map +1 -1
  78. package/dist/lib/sync/adr-transitions.js +59 -5
  79. package/dist/lib/sync/adr-transitions.js.map +1 -1
  80. package/dist/lib/sync/index.d.ts.map +1 -1
  81. package/dist/lib/sync/index.js +31 -1
  82. package/dist/lib/sync/index.js.map +1 -1
  83. package/dist/lib/validate/aggregate.d.ts +4 -0
  84. package/dist/lib/validate/aggregate.d.ts.map +1 -1
  85. package/dist/lib/validate/aggregate.js +31 -15
  86. package/dist/lib/validate/aggregate.js.map +1 -1
  87. package/dist/lib/validate/bundle-coherence.d.ts.map +1 -1
  88. package/dist/lib/validate/bundle-coherence.js +7 -2
  89. package/dist/lib/validate/bundle-coherence.js.map +1 -1
  90. package/dist/lib/validate/dispatch.d.ts.map +1 -1
  91. package/dist/lib/validate/dispatch.js +25 -0
  92. package/dist/lib/validate/dispatch.js.map +1 -1
  93. package/dist/lib/validate/index.d.ts.map +1 -1
  94. package/dist/lib/validate/index.js +32 -10
  95. package/dist/lib/validate/index.js.map +1 -1
  96. package/dist/lib/validate/yaml-parse.d.ts +17 -0
  97. package/dist/lib/validate/yaml-parse.d.ts.map +1 -0
  98. package/dist/lib/validate/yaml-parse.js +112 -0
  99. package/dist/lib/validate/yaml-parse.js.map +1 -0
  100. package/package.json +4 -3
  101. package/scripts/build-verify-package.mjs +5 -1
  102. package/scripts/copy-yaml-assets.mjs +1 -1
  103. package/scripts/validate-app-dependencies.sh +24 -4
  104. package/scripts/validate-app-docs.sh +18 -4
@@ -34,6 +34,9 @@ log_info() { echo -e "${GREEN}[INFO]${NC} $1"; }
34
34
  log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
35
35
  log_fail() { echo -e "${RED}[FAIL]${NC} $1"; }
36
36
  log_pass() { echo -e "${GREEN}[PASS]${NC} $1"; }
37
+ # R1: an empty population is "measured nothing", not a pass — the [N/A] tag
38
+ # must start the line (no leading colour escape) so callers can detect it.
39
+ log_na() { echo -e "[N/A] $1"; }
37
40
  log_section() {
38
41
  echo -e "\n${BLUE}═══════════════════════════════════════════════════════════${NC}"
39
42
  echo -e "${BLUE} $1${NC}"
@@ -66,6 +69,14 @@ fi
66
69
 
67
70
  FAILURES=0
68
71
 
72
+ # R1: the feature specs are the population this validator measures. With none,
73
+ # the Group 1 file-presence checks are reported as [INFO] rather than [PASS] so
74
+ # the run reads as "measured nothing", not as a pass.
75
+ FEATURE_SPEC_COUNT="$( (find "$APP_ROOT/features" -type f -name "*.md" 2>/dev/null || true) | wc -l | tr -d ' ')"
76
+ log_found() {
77
+ if [[ "$FEATURE_SPEC_COUNT" -gt 0 ]]; then log_pass "$1"; else log_info "$1"; fi
78
+ }
79
+
69
80
  # ──────────────────────────────────────────────────────────────────────────────
70
81
  check_required_files() {
71
82
  log_section "Group 1: Required App Repo Files"
@@ -85,7 +96,7 @@ check_required_files() {
85
96
  log_fail "service-architecture.md not found (checked docs/service-architecture.md and service-architecture.md)"
86
97
  checks_failed=$((checks_failed + 1))
87
98
  else
88
- log_pass "service-architecture.md found: ${service_arch#$APP_ROOT/}"
99
+ log_found "service-architecture.md found: ${service_arch#$APP_ROOT/}"
89
100
  checks_passed=$((checks_passed + 1))
90
101
  fi
91
102
 
@@ -103,13 +114,13 @@ check_required_files() {
103
114
  log_warn "feature-tree.md not found (checked docs/platform/, docs/, and repo root) — create when features are classified"
104
115
  # warn only; not a hard fail at exploration stage
105
116
  else
106
- log_pass "feature-tree.md found: ${feature_tree#$APP_ROOT/}"
117
+ log_found "feature-tree.md found: ${feature_tree#$APP_ROOT/}"
107
118
  checks_passed=$((checks_passed + 1))
108
119
  fi
109
120
 
110
121
  # 1c. app-platform-dependencies.yaml
111
122
  if [[ -f "$APP_ROOT/app-platform-dependencies.yaml" ]]; then
112
- log_pass "app-platform-dependencies.yaml found"
123
+ log_found "app-platform-dependencies.yaml found"
113
124
  checks_passed=$((checks_passed + 1))
114
125
  else
115
126
  log_fail "app-platform-dependencies.yaml not found in repo root"
@@ -173,7 +184,10 @@ main() {
173
184
 
174
185
  log_section "Summary"
175
186
 
176
- if [[ "$FAILURES" -eq 0 ]]; then
187
+ if [[ "$FAILURES" -eq 0 && "$FEATURE_SPEC_COUNT" -eq 0 ]]; then
188
+ log_na "App documentation: required files present, but 0 feature specs found under features/ — nothing to check"
189
+ exit 0
190
+ elif [[ "$FAILURES" -eq 0 ]]; then
177
191
  log_pass "All app documentation checks passed."
178
192
  exit 0
179
193
  else