콘텐츠로 이동

법령 변경 감지와 리뷰 워크플로

.github/workflows/source-watch.yml이 매주 scripts/check-sources.mjs를 실행합니다.

출처 종류감지 방법
법률·시행령국가법령정보센터 Open API(DRF)의 법령일련번호·공포번호·시행일자 비교, 조문 단위 정규화 텍스트 해시 비교
행정규칙(고시)같은 API의 행정규칙일련번호·발령번호·시행일자 비교, 조문 단위 해시
OWASP ASVSGitHub Releases API의 정식 버전 태그 비교
행정기관 안내서공식 API가 없어 개인정보보호위원회 안내서 게시판의 검색 결과 1페이지만 출처당 주 1회 읽고, [현재 안내서] 최신 글의 게시글 번호(nttId)와 제목을 비교. 크롤링하지 않으며 요청 간격을 둠. 현재 안내서를 찾지 못하면 수동 확인 이슈 생성
  • 웹 페이지 HTML 해시는 쓰지 않습니다. 광고 배너나 레이아웃 변경으로 생기는 오탐을 피하기 위해, 법령은 API의 버전 필드와 조문 텍스트, 안내서는 게시글 번호·제목처럼 구조화된 값만 비교합니다.
  • 조문 텍스트는 공백과 <개정 …> 표기를 제거한 뒤 해시합니다.
  • 공식 API 사용에는 국가법령정보 공동활용 인증키가 필요합니다. 저장소 Secret LAW_OC에 등록하세요. 없으면 법령 확인은 건너뜁니다.

변경이 감지되면 source-watch, review-required 라벨을 단 이슈가 생깁니다. 이슈에는 변경된 조문과, 그 조문을 legalBasis로 인용한 검토가 필요한 문서 목록이 들어갑니다.

.github/workflows/link-check.yml이 매주 scripts/check-links.mjs를 실행해 출처 레지스트리(data/sources.json)와 문서·Skill의 외부 링크를 확인합니다.

  • 링크마다 한 번, 1초 간격으로 순서대로 요청합니다. HEAD를 거부하는 서버에는 GET으로 다시 확인합니다.
  • 404·5xx·연결 실패는 깨짐, 403·429와 서버의 중간 인증서 누락은 봇 차단이나 서버 설정 문제일 수 있어 확인 필요로 분류합니다.
  • 깨진 링크가 있으면 link-check 라벨 이슈를 하나만 열고, 다음 실행부터는 그 이슈 본문을 갱신합니다.
  • 코드 블록 안의 URL과 example.com 같은 예시 도메인은 점검하지 않습니다.
  1. 이슈 담당자가 공식 원문에서 변경 내용과 시행일을 확인합니다.
  2. 영향받는 문서를 고치는 PR을 엽니다. legalBasis[].status, lastVerified, data/sources.json을 갱신하고 node scripts/check-sources.mjs --update-snapshots로 스냅샷(data/law-snapshots/)을, node scripts/build-skill-references.mjs로 Skill의 원문 발췌를 갱신합니다(둘 다 LAW_OC 필요).
  3. CI가 validate:content, 테스트, 빌드를 실행합니다.
  4. 검토자(CODEOWNERS)가 승인하면 병합하고, main 브랜치 병합 시 자동으로 배포됩니다.
  5. 법률 전문가 검토를 마친 문서만 status: reviewed와 reviewedBy, reviewedAt을 적습니다.
  • 모든 변경은 Git 이력으로 남고, 각 페이지 하단의 “마지막 업데이트”는 Git 커밋 시각입니다.
  • 법령 개정에 따른 서술 변경은 변경 이력에 기록합니다.
  • 원문 스냅샷(data/law-snapshots/*.json)은 어떤 버전의 법령을 기준으로 썼는지 보여줍니다.