From 44141ecbee046b8652e798aff8843407412fbda1 Mon Sep 17 00:00:00 2001 From: kjh2064 Date: Sat, 13 Jun 2026 22:04:24 +0900 Subject: [PATCH] =?UTF-8?q?fix(validate=5Fspecs):=20Temp/=20=EB=9F=B0?= =?UTF-8?q?=ED=83=80=EC=9E=84=20=EC=95=84=ED=8B=B0=ED=8C=A9=ED=8A=B8=20?= =?UTF-8?q?=ED=8C=8C=EC=9D=BC=20=EC=A1=B4=EC=9E=AC=20=EC=B2=B4=ED=81=AC=20?= =?UTF-8?q?CI=20=EC=8A=A4=ED=82=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit load_sequence / bundle_profiles 파일 존재 검증 시 Temp/ 경로는 런타임 생성 아티팩트이므로 CI 체크아웃 환경에서 존재하지 않음 → 파일명이 Temp/로 시작하면 체크 스킵 Co-Authored-By: Claude Sonnet 4.6 --- tools/validate_specs.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tools/validate_specs.py b/tools/validate_specs.py index c5fd232..d5d24ea 100644 --- a/tools/validate_specs.py +++ b/tools/validate_specs.py @@ -647,12 +647,13 @@ def main() -> int: manifest = load_yaml(ROOT / "RetirementAssetPortfolio.yaml", errors) or {} for step_name, step in (manifest.get("load_sequence") or {}).items(): for file_name in step.get("files", []): - if "*" not in file_name and not (ROOT / file_name).exists(): + # Temp/ 파일은 런타임 생성 아티팩트 — CI 체크아웃 환경에서는 존재하지 않음 + if "*" not in file_name and not file_name.startswith("Temp/") and not (ROOT / file_name).exists(): fail(errors, f"manifest load_sequence missing file: {step_name}: {file_name}") for key, file_name in (manifest.get("spec_files") or {}).items(): if not isinstance(file_name, str): continue - if "*" not in file_name and not (ROOT / file_name).exists(): + if "*" not in file_name and not file_name.startswith("Temp/") and not (ROOT / file_name).exists(): fail(errors, f"manifest spec_files missing file: {key}: {file_name}") # All spec YAML files should be registered in manifest, governance, split indexes, or compatibility indexes. @@ -810,7 +811,8 @@ def main() -> int: fail(errors, f"manifest missing bundle_profiles.{profile_name}") continue for file_name in profile.get("files", []): - if "*" not in file_name and not (ROOT / file_name).exists(): + # Temp/ 파일은 런타임 생성 아티팩트 — CI 환경에서는 스킵 + if "*" not in file_name and not file_name.startswith("Temp/") and not (ROOT / file_name).exists(): fail(errors, f"bundle profile missing file: {profile_name}: {file_name}") ownership = load_yaml(ROOT / "spec" / "ownership_map.yaml", errors) or {}