R1 | L3 HIGH 유효 @Roles 를 합집합으로 계산하면 charge-requests/process 가 sales 를 잘못 허용 | ABSORBED(money-admin.controller.ts:315-317 메서드 admin · 클래스 admin,sales · roles.guard.ts:16-19 getAllAndOverride, 합집합이면 admin,sales 반례) | R1 | architect HIGH --list 가 @Roles 와 경로를 싣지 않는다 | ABSORBED(route-guards.mjs:26 출력 형식 직접 확인, 생성기가 소스를 읽고 검사 #10 이 Nest 메타데이터로 대조) | R1 | architect HIGH #10 대조 키가 표에 없다 | ABSORBED(키를 메서드+경로+정렬 역할+신원 으로 정의, 런타임 쪽도 같은 키로 덤프) | R1 | architect LOW @Public 감지가 리터럴이다 | ABSORBED(운영 @Public( 0 건 · isPublic 설정자 0 건 실측, 검사 #5 로 기계화) | R1 | test HIGH #11 이 아무것도 단언하지 않는다 | ABSORBED(검사 #11 이 --stats 줄을 노트 줄과 글자 대조, 반사실은 구현 때) | R1 | invariant HIGH 검사 본문이 plan_hash 밖이다 | ABSORBED(검사 본문을 Validation 안으로 편입, 사이드카 DELETE, fence 169행, bash -n OK) | R1 | invariant HIGH #11 이 항상 통과한다 | ABSORBED(test HIGH #11 과 같은 항목) | R1 | test HIGH 유효 @Roles · 신원 · 여섯 범주 칸을 원천과 대조하는 검사가 없다 | ABSORBED(유효 @Roles · 신원은 검사 #10 런타임 대조, 여섯 범주는 어휘만 #7 · 판정 내용은 (미검증)) | R1 | test MEDIUM #8 이 개수만 비교한다 | ABSORBED(검사 #8 이 비 auth 키 집합을 cmp) | R1 | test MEDIUM #9 coocon 미검사 · 사무실 IP 공허 통과 | ABSORBED(검사 #9 가 파일별 행 수 1 이상 · 외부 표지 칸 대조 · coocon 포함) | R1 | test MEDIUM #10 음성이 한 방향뿐 | ABSORBED(검사 #10 이 행 뺀 사본과 가짜 행 더한 사본 두 방향을 본다) | R1 | test LOW #12 가 커밋분만 본다 | ABSORBED(git status --untracked-files=all 추가, reviews/ state/ 는 mccp 기록이라 제외 근거 명시) | R1 | invariant MEDIUM #9 공허 통과 | ABSORBED(test MEDIUM #9 와 같은 항목) | R1 | invariant LOW #13 이 입력 부재에서 열린다 | ABSORBED(grep rc 1 만 통과, rc 2 는 붉음) | R1 | invariant LOW #12 커밋분만 본다 | ABSORBED(test LOW #12 와 같은 항목) | R1 | security LOW #13 이 /home/ 만 본다 | ABSORBED(패턴 4종, 계획서 리터럴 회피는 printf 로) | R1 | security LOW 덤프가 부팅 환경의 비밀을 싣는다 | REJECTED(덤프 출력은 git 디렉터리 임시 경로에만 쓰고 커밋 안 함, 허용 집합 밖이라 커밋하면 검사 #12 가 붉다, 싣는 것은 경로 · 역할 · 가드 이름뿐. 잔여 위험은 Risks 행) | R1 | 층위 1 사실 오류: 51 정의가 정책 문서의 값과 맞지 않는다 | ABSORBED(정책 51 은 aff 트리 45+6, 산식 재정의, 계획 시점 실측 03ce 2 · aff 51) | R1 | 층위 2 주장과 검사 불일치: 「무조건 공개」 「여섯 범주」 정의 없음 | ABSORBED(여섯 범주 정의를 Task 3 에 적음, 무조건 공개 행 0 은 검사 #5 로 확인) |