fix(ci-gates): CI FAIL 2건 수정 — WBS-8.7/P3

[P0-A] validate_specs.py FAIL 2건 수정:
- spec/41_release_dag.yaml meta.code_path: 'tools/ or spec/ or .gitea/workflows'
  (상징적 문자열) → 'tools/run_release_dag_v3.py' (실제 파일 경로) 수정
  (WBS-7.11 spec-코드 동기화 게이트 규칙 위반 해소)
- RetirementAssetPortfolio.yaml spec_files에 spec/llm_radar_trust_tiers_v1.yaml 등록
  (WBS-9.6 LLM 레이더 신뢰도 분류 spec manifest 등록)

[P0-B] validate_platform_transition_wbs_v1.py P3 FAIL 수정:
- .gitea/workflows/kis_data_collection.yml collect-kis-data-live job에서
  중복된 mock 자격증명 검증 스텝 제거 (validate-kis-config-smoke job에만 유지)
  (P3 mock_env_vars_not_isolated 규칙: KIS_APP_Key_TEST 정확히 1회 등장 요구)

검증:
- python tools/validate_specs.py → VALIDATION OK
- python tools/validate_platform_transition_wbs_v1.py → gate: PASS
This commit is contained in:
2026-06-23 09:27:22 +09:00
parent ee348cfe67
commit 6e6566e86e
3 changed files with 2 additions and 20 deletions
-19
View File
@@ -156,25 +156,6 @@ jobs:
- name: "[CRITICAL] No Direct API Trading Gate" - name: "[CRITICAL] No Direct API Trading Gate"
run: python3 tools/validate_no_direct_api_trading_v1.py run: python3 tools/validate_no_direct_api_trading_v1.py
- name: "[CRITICAL] Validate KIS API Credentials (mock)"
env:
# Gitea repository variables are injected here; the Python loader reads these env names.
KIS_APP_Key_TEST: ${{ vars.KIS_APP_KEY_TEST }}
KIS_APP_Secret_TEST: ${{ vars.KIS_APP_SECRET_TEST }}
run: |
if [ -z "${KIS_APP_Key_TEST:-}" ]; then
echo "::error::Gitea variable KIS_APP_KEY_TEST is missing or empty"
exit 1
fi
if [ -z "${KIS_APP_Secret_TEST:-}" ]; then
echo "::error::Gitea variable KIS_APP_SECRET_TEST is missing or empty"
exit 1
fi
python3 tools/validate_kis_api_credentials_v1.py \
--account mock \
--ticker 005930 \
--dry-run
- name: Collect KIS Market Data to SQLite (read-only) - name: Collect KIS Market Data to SQLite (read-only)
env: env:
# Real collection uses repository variables, not Windows shell env syntax. # Real collection uses repository variables, not Windows shell env syntax.
+1
View File
@@ -317,6 +317,7 @@ spec_files:
renderer_copy_only_contract: "spec/56_renderer_copy_only_contract.yaml" renderer_copy_only_contract: "spec/56_renderer_copy_only_contract.yaml"
shadow_promotion_scorecard: "spec/57_shadow_promotion_scorecard.yaml" shadow_promotion_scorecard: "spec/57_shadow_promotion_scorecard.yaml"
llm_determinism_contract: "spec/58_llm_determinism_contract.yaml" llm_determinism_contract: "spec/58_llm_determinism_contract.yaml"
llm_radar_trust_tiers_v1: "spec/llm_radar_trust_tiers_v1.yaml"
governance: governance:
ownership_map: "spec/ownership_map.yaml" ownership_map: "spec/ownership_map.yaml"
+1 -1
View File
@@ -2420,7 +2420,7 @@ execution_order:
goal: Linearize package.json scripts into a validated DAG execution graph. goal: Linearize package.json scripts into a validated DAG execution graph.
has_code_implementation: true has_code_implementation: true
meta: meta:
code_path: tools/ or spec/ or .gitea/workflows code_path: tools/run_release_dag_v3.py
has_code_implementation: true has_code_implementation: true
schema_version: release_dag.v3 schema_version: release_dag.v3
step_count: 104 step_count: 104