법령 변경 감지와 리뷰 워크플로
변경 감지
섹션 제목: “변경 감지”.github/workflows/source-watch.yml이 매주 scripts/check-sources.mjs를 실행합니다.
| 출처 종류 | 감지 방법 |
|---|---|
| 법률·시행령 | 국가법령정보센터 Open API(DRF)의 법령일련번호·공포번호·시행일자 비교, 조문 단위 정규화 텍스트 해시 비교 |
| 행정규칙(고시) | 같은 API의 행정규칙일련번호·발령번호·시행일자 비교, 조문 단위 해시 |
| OWASP ASVS | GitHub 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같은 예시 도메인은 점검하지 않습니다.
리뷰 워크플로
섹션 제목: “리뷰 워크플로”- 이슈 담당자가 공식 원문에서 변경 내용과 시행일을 확인합니다.
- 영향받는 문서를 고치는 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필요). - CI가
validate:content, 테스트, 빌드를 실행합니다. - 검토자(CODEOWNERS)가 승인하면 병합하고, main 브랜치 병합 시 자동으로 배포됩니다.
- 법률 전문가 검토를 마친 문서만
status: reviewed와reviewedBy,reviewedAt을 적습니다.
문서 버전 관리
섹션 제목: “문서 버전 관리”- 모든 변경은 Git 이력으로 남고, 각 페이지 하단의 “마지막 업데이트”는 Git 커밋 시각입니다.
- 법령 개정에 따른 서술 변경은 변경 이력에 기록합니다.
- 원문 스냅샷(
data/law-snapshots/*.json)은 어떤 버전의 법령을 기준으로 썼는지 보여줍니다.