Files
service-catalog/.claude/skills/catalog-update-pipeline/SKILL.md
T
wbsong111 01ec67ae1f 파이프라인 실행 절차를 Claude Code Skill 3종으로 등록
세 파이프라인의 실행법이 문서에만 있어 "그 문서를 읽어야만" 알 수 있었다.
관련 작업 시 자동 로드되도록 Skill 로 등록한다.

- catalog-update-pipeline: agent/update_catalog 파이프라인. CATALOG_ROOT 가
  개인 로컬 경로로 하드코딩돼 있어 오버라이드 필수라는 점, create_pr 단계가
  주석 처리돼 PR 이 생성되지 않는다는 점을 명시했다.
- sbom-cve-gate: SBOM·스캔·게이트. CoverageProbe(ok/none/n-a) 해석과 게이트가
  현재 warn-only 라는 점을 명시했다.
- self-build-image: 자체 빌드. 오케스트레이터는 하나뿐이라는 원칙과 전역 ARG
  선언, 게이트 PASS 가 동작을 보장하지 않는다는 점을 명시했다.

Skill 은 절차 본문을 복제하지 않고 권위 문서를 가리킨다 — 문서가 단일 출처이고
Skill 은 실행 계약과 함정·현재 상태만 담는다.

함께 고친 stale 문서(image-authoring.md):
- "images/ 디렉토리 자체가 없다" → 실제로는 이미지 3종이 있고 push 까지 됐다
- "자동화된 배포 테스트 절차는 아직 없다" → deploy-test-procedure.md 와
  전용 스크립트가 있다

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 15:37:57 +09:00

3.3 KiB

name, description
name description
catalog-update-pipeline Helm 차트 신규 버전 감지 → diff → breaking change 판정 → 업그레이드 문서 생성 파이프라인(agent/update_catalog)을 실행할 때 사용한다. "차트 새 버전 확인해줘", "업그레이드 문서 생성", "run_flow.sh 돌려줘", "helm diff 내줘", "breaking change 확인" 같은 요청이 해당한다. 개별 Skill(chart_version_detector, helm_diff, breaking_change_check 등) 단독 실행에도 적용된다.

카탈로그 업데이트 파이프라인 실행

agent/update_catalog/의 결정론적 Python Skill 7개를 run_flow.sh가 순서대로 체이닝한다. 각 Skill은 stdout으로 JSON을 내고 다음 Skill의 입력이 된다.

chart_version_detector → chart_updater → helm_diff → breaking_change_check
  → generate_upgrade_doc → update_docs_file → create_pr

실행 전 반드시 확인할 것

CATALOG_ROOT를 오버라이드하지 않으면 엉뚱한 경로를 본다. 기본값이 /Users/songwonbin/openclaw-workspace/dip-catalog로 하드코딩돼 있다(개인 로컬 경로).

CATALOG_ROOT=/path/to/dip-catalog CHART=airflow \
  bash agent/update_catalog/scripts/run_flow.sh
환경변수 의미 기본값
CATALOG_ROOT dip-catalog 절대 경로 하드코딩된 개인 경로 — 반드시 오버라이드
CHART 대상 차트명 airflow
OUT_DIR 중간 JSON 산출물 $(pwd)/update_catalog (차트별 하위 디렉토리로 격리)
DEFAULT_BRANCH 분기 기준 브랜치 main
USE_CLAUDE_CLI=1 breaking=true 시 LLM 상세 가이드 생성 미설정 시 템플릿 기반

알려진 미완 상태

create_pr(6단계)은 run_flow.sh에서 통째로 주석 처리돼 있다 — 파이프라인이 끝까지 돌아도 브랜치·커밋·PR이 생성되지 않는다. 문서 생성까지가 실제 동작 범위다. PR이 필요하면 결과물을 보고 직접 만들거나, 주석을 해제하기 전에 create_pr Skill의 동작을 먼저 검증한다(CLAUDE.md 기준 "실제 GitHub 연동 테스트 미완료").

deploy_validate는 SKILL.md만 있고 구현이 없다(Phase 2 예정).

개별 Skill 단독 실행

파이프라인 전체가 아니라 한 단계만 필요할 때가 많다. 입출력 스키마는 agent/update_catalog/skills/<skill>/SKILL.md에 있다.

python3 agent/update_catalog/skills/helm_diff/scripts/run.py \
  --chart airflow --repo bitnami \
  --chart-path /path/to/dip-catalog/manifests/helm/airflow/1.15.0 \
  --from-version 1.15.0 --to-version 1.16.0

지켜야 할 설계 원칙

CLAUDE.md "설계 원칙"이 이 파이프라인을 직접 구속한다. 특히:

  • helm 실행은 Python Skill이 전담한다 — LLM이 helm CLI를 직접 돌려 diff를 만들지 않는다.
  • LLM 입력은 Structured JSON만 — raw helm output이나 자유 텍스트를 넘기지 않는다.
  • Breaking change는 Rule Engine이 먼저 판단한다(custom-values.yaml의 실제 사용 키 기준). LLM은 breaking=true일 때 Markdown 설명 생성만 담당한다.

참고

  • CLAUDE.md "자동화 Skills 작업" — 파이프라인 개요·환경변수
  • agent/update_catalog/docs/design/ — 컴포넌트별 상세 설계(00~05)
  • agent/update_catalog/docs/status.md — 구현 현황