엄격한 설정 유효성 검증 (doctor 전용 마이그레이션)
목표
- 루트
$schema메타데이터를 제외하고 모든 곳에서 알 수 없는 설정 키 거부 (루트 + 중첩). - 스키마 없는 플러그인 설정 거부; 해당 플러그인을 로드하지 않음.
- 로드 시 레거시 자동 마이그레이션 제거; 마이그레이션은 doctor를 통해서만 실행.
- 시작 시 doctor (dry-run) 자동 실행; 유효하지 않으면 비진단 명령 차단.
엄격한 유효성 검증 규칙
- 설정은 모든 수준에서 스키마와 정확히 일치해야 함.
- 알 수 없는 키는 유효성 검증 오류 (루트나 중첩에서 통과 없음), 단 루트
$schema가 문자열일 때 제외. plugins.entries.<id>.config는 플러그인의 스키마에 의해 유효성 검증되어야 함.- 플러그인에 스키마가 없으면 플러그인 로드 거부하고 명확한 오류 표시.
Doctor 흐름
- 설정이 로드될 때마다 Doctor 실행 (기본 dry-run).
- 설정이 유효하지 않으면:
- 요약 + 실행 가능한 오류 출력.
- 안내:
openclaw doctor --fix.
명령 게이팅 (설정이 유효하지 않을 때)
허용됨 (진단 전용):
openclaw doctor,openclaw logs,openclaw health,openclaw help,openclaw status,openclaw gateway status
나머지 모든 것은 하드 실패: “Config invalid. Run openclaw doctor --fix.”