한 덩어리였던 단어시험지 Skill을 세 책임으로 나눠 보았다

## 한 줄 요약

+1주차에 만든 vocabulary-test-maker입력 검수, 시험지 생성, 독립 검증의 세 작은 Skill로 나누고, 상위 Umbrella가 실행 순서와 실패 반환을 맡도록 연결했다. 공개용 가상 단어 10개로 실제 실행한 결과 정상 입력은 PASS, 오류 입력은 partial과 Human Gate HOLD로 구분됐다.

## 왜 1주차 Skill을 다시 보게 됐나

+1주차에는 단어 목록 하나를 넣어 학생용 시험지와 정답지를 만드는 데 성공했다. 하지만 하나의 Skill 안에 다음 일이 모두 들어 있었다.

- 입력 형식과 중복 확인

- 문제 순서와 시험지 형식 결정

- 학생용 시험지와 정답지 생성

- 문항 수·정답·답 노출 검증

- 실제 배포 전 교사 승인

처음에는 한 번에 처리돼 편했지만, 오류가 생겼을 때 어디를 고쳐야 하는지가 흐렸다. 입력이 잘못된 문제와 정답지 순서가 어긋난 문제는 실패 원인도, 확인 방법도, 수리 방법도 달랐다.

## 원본과 작업 사본을 먼저 분리했다

기존 Skill은 learner-owned 원본으로 보존하고, 2주차 작업은 별도 working copy에서 진행했다. 후보 파일을 만들기 전 자동 백업을 수행하고 파일별 SHA-256을 대조했다. 백업 payload를 새 경로에 복사해 다시 해시를 비교하는 복원 리허설도 PASS였다.

작업 중 변경 전 백업 영수증은 총 10개가 남았고 모두 PASS다. 배포받은 수업 자료나 기존 1주차 원본은 수정하지 않았다.

## 전체 절차를 빠짐없이 펼쳐 본 결과

요청을 받는 순간부터 실제 외부 배포 전까지 절차를 18개로 펼쳐 분류했다. 그 결과 작은 Skill로 분리할 경계는 세 곳이었다.

1. `vocabulary-list-validator`

word | meaning 목록을 읽고 유효 항목, 형식 오류, 중복을 구분한다.

2. `vocabulary-test-composer`

검수된 pair와 제목·배점·seed를 받아 학생지와 정답지를 같은 순서로 만든다.

3. `vocabulary-test-verifier`

생성기와 독립적으로 문항 수, 순서, 입력 뜻, 학생용 답 노출, 재현성을 판정한다.

제 판단으로 실제 인쇄·배포 승인은 아직 별도 Skill로 만들지 않았다. 현재는 단어시험에만 쓰고 있고 외부 행동도 없으므로, 상위 Umbrella 안의 교사 Human Gate로 유지하는 편이 더 단순했다.

## 나누지 않고 남긴 것

모든 작은 동작을 Skill로 만들지는 않았다.

- 제목·배점·문항 수 결정: 전체 요청을 조정하므로 Umbrella 내부

- pair를 섞는 동작: 독립 판단이 없는 Composer의 지원 코드

- 파일 쓰기와 SHA-256 계산: 각 Skill의 지원 코드

- 중복을 유지할지 판단: 교사가 결정하므로 Human Gate

- 실제 인쇄·발송·게시: 이번 Skill Tree 밖의 별도 작업

이렇게 나누니 “작은 함수”와 “독립적인 책임을 가진 Skill”이 같은 것은 아니라는 점이 보였다.

## 만든 Interface

각 후보에 공통으로 다음 경계를 적었다.

name / role / use_when / input / steps / output / verifier / failure_return

가장 중요한 연결은 파일 이름보다 출력 계약이었다.

Validator → validation-report.json

Composer → test.md + composition-receipt.json

Verifier → proof.json

Umbrella → 다음 Skill 선택 또는 실패 책임으로 반환

## Umbrella Tree: 어디에 속하는가

vocabulary-test-maker-umbrella

├─ vocabulary-list-validator

├─ vocabulary-test-composer

├─ vocabulary-test-verifier

└─ Human Gate: 교사 배포 승인

 └─ 실제 print/send/publish는 Tree 밖 별도 작업

## Circuit: 무엇이 전달되고 어디로 돌아가는가

omitted 91 diff line(s) across 1 additional file(s)/section(s)

3
4개의 답글
밀어주고 끌어주는

온·오프라인 AI 스터디

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