spec-runner 1.0.11 → 1.0.12
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
|
@@ -297,6 +297,13 @@ schema_drift_check() {
|
|
|
297
297
|
|
|
298
298
|
run_health_check() {
|
|
299
299
|
local drifts=()
|
|
300
|
+
local current_phase=0
|
|
301
|
+
|
|
302
|
+
# フェーズに応じてチェック強度を段階適用する
|
|
303
|
+
if [[ -x ".spec-runner/scripts/spec-runner-core.sh" ]] && command -v jq >/dev/null 2>&1; then
|
|
304
|
+
current_phase="$(.spec-runner/scripts/spec-runner-core.sh --json 2>/dev/null | jq -r '.phase // 0' 2>/dev/null)"
|
|
305
|
+
[[ -n "$current_phase" && "$current_phase" != "null" ]] || current_phase=0
|
|
306
|
+
fi
|
|
300
307
|
|
|
301
308
|
UC_ROOT="$(get_steps_common_doc "uc_root")"
|
|
302
309
|
DOMAIN_ROOT="$(get_steps_common_doc "domain_root")"
|
|
@@ -317,16 +324,20 @@ run_health_check() {
|
|
|
317
324
|
grep -qE '^## タスク一覧|^## タスク\\b' "$f" 2>/dev/null || drifts+=("UC ${base}: 「## タスク」または「## タスク一覧」の見出しがありません(UC 仕様書の一番下に記載すること)")
|
|
318
325
|
done
|
|
319
326
|
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
if [[ ! -f "$DOMAIN_ROOT/ユビキタス言語辞書.md" ]]; then
|
|
324
|
-
drifts+=("ユビキタス言語辞書.md が存在しません")
|
|
325
|
-
else
|
|
326
|
-
grep -qE '禁止語|forbidden' "$DOMAIN_ROOT/ユビキタス言語辞書.md" 2>/dev/null || drifts+=("ユビキタス言語辞書に禁止語欄が定義されていません")
|
|
327
|
+
if [[ "$current_phase" -ge 3 ]]; then
|
|
328
|
+
adr_count=$(find "$ARCH_ROOT/設計判断記録" -name "*.md" 2>/dev/null | wc -l)
|
|
329
|
+
[[ "${adr_count:-0}" -lt 1 ]] && drifts+=("ADR が 1 件もありません(設計判断記録)")
|
|
327
330
|
fi
|
|
328
|
-
|
|
329
|
-
|
|
331
|
+
|
|
332
|
+
if [[ "$current_phase" -ge 2 ]]; then
|
|
333
|
+
if [[ ! -f "$DOMAIN_ROOT/ユビキタス言語辞書.md" ]]; then
|
|
334
|
+
drifts+=("ユビキタス言語辞書.md が存在しません")
|
|
335
|
+
else
|
|
336
|
+
grep -qE '禁止語|forbidden' "$DOMAIN_ROOT/ユビキタス言語辞書.md" 2>/dev/null || drifts+=("ユビキタス言語辞書に禁止語欄が定義されていません")
|
|
337
|
+
fi
|
|
338
|
+
if [[ -f "$DOMAIN_ROOT/集約.md" ]]; then
|
|
339
|
+
grep -q '対応テーブル' "$DOMAIN_ROOT/集約.md" 2>/dev/null || drifts+=("集約.md に「対応テーブル」欄がありません")
|
|
340
|
+
fi
|
|
330
341
|
fi
|
|
331
342
|
|
|
332
343
|
if [[ ! -f ".spec-runner/grade-history.json" ]]; then
|
|
@@ -334,13 +345,15 @@ run_health_check() {
|
|
|
334
345
|
elif command -v jq >/dev/null 2>&1; then
|
|
335
346
|
grade=$(jq -r '.current_grade' .spec-runner/grade-history.json)
|
|
336
347
|
[[ -n "$grade" && "$grade" != "null" ]] || drifts+=("grade-history.json の current_grade が未設定です")
|
|
337
|
-
if [[ "$grade" == "A" ]]; then
|
|
348
|
+
if [[ "$grade" == "A" && "$current_phase" -ge 4 ]]; then
|
|
338
349
|
[[ ! -f "$INFRA_ROOT/schema.dbml" ]] && drifts+=("Grade A 必須: schema.dbml が存在しません")
|
|
339
350
|
schema_sync_check >/dev/null 2>&1 || drifts+=("Prisma と schema.dbml のテーブルが一致していません(スキーマ同期チェック)")
|
|
340
351
|
fi
|
|
341
352
|
fi
|
|
342
353
|
|
|
343
|
-
[[
|
|
354
|
+
if [[ "$current_phase" -ge 3 ]]; then
|
|
355
|
+
[[ ! -f "$OPENAPI_PATH" ]] && drifts+=("openapi.yaml が存在しません")
|
|
356
|
+
fi
|
|
344
357
|
|
|
345
358
|
if [[ ${#drifts[@]} -eq 0 ]]; then
|
|
346
359
|
ok "健全性確認: 問題なし"
|