콘텐츠로 이동

검증기

AIMO 검증기는 증거 팩 및 관련 산출물이 AIMO 표준 스키마 및 요구사항에 부합하는지 확인합니다.

참조: 인간 감독 프로토콜 — 기계 vs. 인간 검토의 책임 경계.

실제 검증기

30초 빠른 시작(설치, 실행, 출력 해석)은 검증기 허브를 참조하세요.

검증기 MVP 요구사항

최소 실행 가능 검증기는 다음 검사를 수행해야 합니다(MUST):

1. 필수 필드 검증

모든 필수 필드가 존재하는지 확인:

산출물 필수 필드
증거 팩 매니페스트 pack_id, pack_version, taxonomy_version, created_date, last_updated, codes, evidence_files
코드 객체 FS, UC, DT, CH, IM, RS, EV (OB 선택적)
증거 파일 항목 file_id (EP-01..EP-07), filename, title (ev_type / ev_codes 선택)

2. 차원 코드 검증

각 필수 차원에 최소 하나의 코드가 있는지 확인:

차원 요구사항
FS (기능 범위) 정확히 1개 코드
UC (사용 사례 분류) 최소 1개 코드
DT (데이터 유형) 최소 1개 코드
CH (채널) 최소 1개 코드
IM (통합 모드) 정확히 1개 코드
RS (리스크 표면) 최소 1개 코드
OB (결과 / 혜택) 선택적 (0개 이상)
LG (로그/기록 유형) 최소 1개 코드

3. 딕셔너리 존재 확인

모든 코드가 분류체계 딕셔너리에 존재하는지 검증:

  • 지정된 taxonomy_version의 분류체계 딕셔너리 로드
  • 매니페스트의 각 코드가 딕셔너리에 존재하는지 확인
  • 차원 및 값과 함께 유효하지 않은 코드 보고

4. 코드 형식 검증

모든 코드가 예상 형식과 일치하는지 확인:

^(FS|UC|DT|CH|IM|RS|OB|LG)-\d{3}$

5. 스키마 검증

JSON 스키마에 대해 검증:

스키마 목적
evidence_pack_manifest.schema.json 증거 팩 매니페스트
taxonomy_pack.schema.json 분류체계 팩 정의
changelog.schema.json 변경로그 항목

검증 규칙

규칙: 필수 차원

rule_id: required_dimensions
description: 모든 필수 차원에 최소 하나의 코드가 있어야 함
severity: error
check: |
  - FS: 정확히 1개
  - UC: 최소 1개
  - DT: 최소 1개
  - CH: 최소 1개
  - IM: 정확히 1개
  - RS: 최소 1개
  - LG: 최소 1개

규칙: 유효한 코드

rule_id: valid_codes
description: 모든 코드가 분류체계 딕셔너리에 존재해야 함
severity: error
check: |
  manifest.codes의 각 코드에 대해:
    - 코드가 지정된 taxonomy_version의 딕셔너리에 존재
    - 코드 상태가 'active' ('deprecated'인 경우 경고)

규칙: 코드 형식

rule_id: code_format
description: 모든 코드가 표준 형식과 일치해야 함
severity: error
pattern: "^(FS|UC|DT|CH|IM|RS|OB|LG)-\\d{3}$"

규칙: 버전 형식

rule_id: version_format
description: 버전이 유효한 SemVer이어야 함
severity: error
pattern: "^\\d+\\.\\d+\\.\\d+$"
fields:
  - pack_version
  - taxonomy_version

오류 출력 형식

검증 오류는 다음 형식으로 보고됩니다:

<path>: <severity>: <message>

예시:

codes.FS: error: 필수 차원 'FS'에 코드가 없음
codes.UC[0]: error: 코드 'UC-999'가 딕셔너리 v0.1.0에 존재하지 않음
pack_version: error: 유효하지 않은 버전 형식 'v1.0' (SemVer 기대됨)
codes.RS[1]: warning: 코드 'RS-002'가 v0.2.0에서 폐기됨

검증기가 확인하지 않는 것

검증기는 콘텐츠 품질이 아닌 구조적 적합성에 초점을 맞춥니다:

측면 이유
내용 정확성 검증기는 구조를 확인하며, 의미가 아님
증거 완전성 템플릿은 가이드이며, 강제 형식이 아님
상호 참조 해결 파일 존재가 확인되지 않음
타임스탬프 유효성 ISO-8601이 엄격히 검증되지 않음
ID 고유성 현재 강제되지 않음
무결성 해시 채택자 책임

참조 구현

Python에서 참조 구현이 제공됩니다:

validator/src/validate.py

사용

python validator/src/validate.py <manifest.json>

예시 출력

Validating: evidence_pack_manifest.json
Taxonomy version: 0.1.0

Checking required dimensions...
  FS: OK (1 code)
  UC: OK (3 codes)
  DT: OK (1 code)
  CH: OK (1 code)
  IM: OK (1 code)
  RS: OK (3 codes)
  OB: OK (2 codes)
  LG: OK (7 codes)

Checking code validity...
  All codes valid.

Validation: PASSED

버전 관리 정책

검증기 규칙은 SemVer를 따릅니다:

  • MAJOR: 호환성 깨는 규칙 변경 (기존 유효 팩을 실패시키는 새 필수 검사)
  • MINOR: 새 선택적 검사, 경고 또는 정보 메시지
  • PATCH: 검증 결과를 변경하지 않는 버그 수정

스키마 참조

스키마 위치
증거 팩 매니페스트 source_pack/04_evidence_pack/schemas/evidence_pack_manifest.schema.json
분류체계 팩 source_pack/03_taxonomy/schemas/taxonomy_pack.schema.json
변경로그 source_pack/03_taxonomy/schemas/changelog.schema.json

참조