정답 한 줄을 일부러 틀리게 만들고, Gate가 실제로 막는지 확인했다

## 한 줄 요약

2주차 기본과제에서 분리한 단어시험지 Skill Tree에 Eval·Proof·Code Gate·Human Gate를 붙였다. 정답 한 줄을 의도적으로 변조하자 독립 Verifier가 FAIL과 수리 책임을 정확히 반환했고, 그 한 줄만 복구한 뒤 같은 입력으로 재검증해 PASS를 받았다. 마지막에는 네 Skill을 현재 Hermes profile에 설치하고 한 번 실행용 Umbrella까지 추가해 다음 주 수업 준비에 바로 사용할 수 있게 했다.

## 기본과제 뒤에 남은 질문

기본과제에서는 다음 흐름이 실제로 작동했다.

Validator → Composer → Verifier → Human Gate

하지만 정상 입력에서 PASS가 나온 것만으로는 검증 장치가 실제 오류를 잡는지 알 수 없었다. 그래서 이번 확장과제의 질문을 이렇게 정했다.

> 학생용 답 비노출과 시험지·정답지 1:1 대응이 깨졌을 때, Verifier가 완료를 차단하고 가장 작은 수리 지점을 알려줄 수 있는가?

## 내가 선택한 다섯 가지 판단

추천안을 그대로 자동 적용하지 않고 각 판단 지점에서 선택지를 확인한 뒤 다음과 같이 정했다.

+

### 1. Eval 기준

+

+- Goal: 학생용 답 비노출과 시험지·정답지 1:1 대응 보장

+- Baseline: 1주차 단일 Skill 내부 확인 방식

+- Pass: 학생 영역에 입력 뜻이 없고, 번호·단어·뜻이 생성 영수증과 전부 정확히 일치

+- Fail: 정답 노출 또는 번호·단어·뜻 불일치가 하나라도 있음

+- Judge: 생성기와 분리된 vocabulary-test-verifier의 구조화 판정

재현성도 중요한 조건이지만, 단어시험에서 더 치명적인 위험은 학생용 답 노출과 정답지 불일치라고 판단해 이것을 대표 성공 조건으로 선택했다.

### 2. Proof Artifact

+다음 네 종류를 한 묶음으로 남기기로 했다.

+

+시험지

++ composition receipt

++ proof.json

++ SHA-256 manifest

+결과 파일만 남기면 기대한 순서를 알 수 없고, proof.json만 남기면 실제 시험지를 다시 볼 수 없다. 그래서 결과·기대값·판정·해시를 함께 보존했다.

### 3. 승인 지점

Code Gate가 PASS한 뒤에도 실제 인쇄·학생 배포·외부 게시 직전에 교사 승인을 받도록 했다. 로컬 파일 생성은 다시 할 수 있지만, 학생에게 나간 시험지는 회수하기 어렵기 때문이다.

### 4. 금지사항

+- 입력에 없는 뜻을 추측하지 않기

+- 학생 개인정보를 넣지 않기

+- 보호된 배포 원본을 수정하지 않기

+- 교사 승인 없이 인쇄·배포·외부 게시하지 않기

### 5. 실패 뒤 최소 수리

전체 Pipeline을 다시 만드는 대신 변조된 정답 한 줄만 Composer 산출물에서 복구하고 동일한 fixture로 재검증하기로 했다.

## 수정 전에 자동 백업부터 했다

+Eval 계약, 실패 fixture, 수리, Proof 묶음, active profile 설치 직전에 각각 백업을 수행했다. 파일별 SHA-256 manifest와 source-backup readback을 확인했고, payload를 별도 경로에 복사해 복원 리허설도 PASS였다.

최종 기록 기준으로 learner working copy 백업 영수증은 18개, active profile 백업 영수증은 2개다. 기존 1주차 vocabulary-test-maker는 덮어쓰지 않았고 그대로 보존했다.

## 먼저 정상 결과를 기준선으로 고정했다

공개 가능한 가상 단어 10개와 seed 23을 사용했다.

+Validator: status=pass valid=10 issues=0

+Composer: status=pass selected=10 seed=23

+Verifier: verdict=PASS checks=5 repair_target=None

정상 시험지의 문항 순서는 다음과 같았다.

omitted 187 diff line(s) across 1 additional file(s)/section(s)
2
5개의 답글
밀어주고 끌어주는

온·오프라인 AI 스터디

AI로 어디까지 할 수 있는지
직접 확인하실 분만 신청하세요.