소개
2-1. 이 편의 위치 — 5편이 비워 둔 자리
5편 Code as Gate
6편 GuardrailAgent
판정 대상
근거의 구조
문장의 내용
판정 방식
결정적 (if)
규칙 + 문맥 + (필요 시) 분류기
재현성
100% 보장
골든셋으로 관리
실패 시
차단
재생성 또는 차단
2-2. 왜 무조건 차단이 문제인가 — 두 계통의 태도 차이
계통
4어(격국·용신·기신·희신)에 대한 태도
근거
①탈XX 4관법
절대 차단 — 잘못된 해석 체계의 잔재
gwanbeop_ppt 1,593건 중 긍정 맥락 0건
②박청화 강의
재정립 — "쓰지 마라"가 아니라 "이렇게 다시 이해하라"
춘하추동 冬편 86~87강, 신사주학 통합본 §3.4
박청화 선생은 冬편 86강에서 기존 격국용신론의 5분류(억부·병약·조후·전황·통관)를 정면으로 해체하고 희기동소(喜忌同所) 개념으로 재구성합니다. 87강에서는 10대 격국(정관격·편관격·정재격·편재격·정인격·편인격·식신격·상관격·양인격·건록격)의 특성을 하나씩 풀어놓습니다.
무조건 차단은 이 강의 전체를 검색 결과에서 지웁니다. 금기어를 지키려다 스승의 핵심 강의를 잃는 것입니다.
2-3. 그런데 v1.0 초안도 여전히 위험했다
python
if any(ctx in text for ctx in ALLOW_CONTEXT):
continue # ← text 전체에서 찾는다text가 A4 3~5매짜리 전체본이면, 1문단의 "희기동소" 한 번이 9문단의 "당신의 용신은 甲木입니다"까지 전부 통과시킵니다. 허용 목록이 문맥 판정 장치가 아니라 만능 통과 열쇠가 됩니다.
초안 소개문에는 "문맥 윈도우 기반으로 정밀화했습니다"라고 적혀 있었는데 코드에는 윈도우가 없었습니다. 문서와 코드가 다른 말을 하면 언제나 코드가 이깁니다.
진행 방법
3-1. 사용 도구
도구
용도
확정 여부
Python re
처방형 단정 패턴 4종
확정
문맥 윈도우 (±N자)
허용 판정 범위 제한
N값 미확정
인용 블록 마킹
근거 원문 vs 자기 발화 분리
리포트 조립부 수정 필요
소형 LLM 분류기
3단 — 완화 전용
미구현
골든셋 50건 + CI
지표 산출
미작성
3-2. Eval Contract — 실행 전에 고정한다
v2.0의 핵심 추가분입니다.
필드
내용
GOAL
금기어 4어의 무조건 차단을 문맥 기반 차단으로 바꾸되, 처방형 단정은 하나도 놓치지 않는다
CRITERIA
① FN(놓친 단정) = 0건 ② FP(과잉차단률) ≤ 0.10 ③ 동일 입력 3회 동일 판정 ④ 1·2단 < 50ms
BASELINE
현행 무조건 차단 상태를 같은 골든셋 50건에 돌린 값. 예상: FN 0 / FP 0.40 (B·C·E-② 30건이 전부 차단될 것)
FAIL CONDITION
① FN ≥ 1 ② D 유형 10건 중 1건이라도 통과 ③ 같은 입력에 다른 판정 ④ 게이트 예외가 통과로 처리됨
METHOD
1차 사람 수동 → 2차 골든셋 자동 → 3차 독립 경로(미구현, §3-9)
BASELINE을 예상값으로 적어 둔 이유 — 실측 전이므로 "예상"이라고 명시합니다. 그리고 개선 보고는 실측 baseline과 대조한 뒤에만 합니다. 예상값과 비교해서 좋아졌다고 말하는 것은 자기 채점입니다.
FP 0.40은 결코 작은 수가 아닙니다. 정당한 인용 열 건 중 네 건이 막힌다는 뜻이고, 그것이 지금 운영 중인 상태입니다.
3-3. Skill 인터페이스 카드 — guardrail-eval
필드
내용
이름
GuardrailAgent Eval
역할
헤르메스가 스스로 만든 문장에 처방형 단정이 있는지 판정한다
Use when
합성 결과가 나온 뒤, 5편 게이트의 G-TB-001 자리에서
Input
draft(텍스트), lineage(계통)
Output
verdict(통과/수정/보류), reason, meta(pattern_id·span·allow_hits)
RETURN
통과 → 게이트로. 수정 → 재생성 1회 후 재검사. 보류 → BLOCKED
실패·되돌림
재생성 후에도 위반 → 보류. 분류기 장애 → 보류 유지
MUST NOT
인용 블록을 검사하지 않는다. 문장을 스스로 고치지 않는다. 허용어를 스스로 추가하지 않는다. 차단을 LLM에게 맡기지 않는다.
MUST NOT의 마지막 줄이 §3-9와 연결됩니다.
3-4. 3단 판정 구조
text
헤르메스 생성 문장
│
├─[0단] 인용 분리 — <quote> 블록은 검사 대상 제외
│ 근거 원문의 "용신"은 박청화 선생이 쓴 것이지 헤르메스의 단정이 아니다
│
├─[1단] 처방형 단정 패턴 매칭 (결정적)
│ 해당 없음 → 통과 (대부분 여기서 끝난다)
│
├─[2단] 문맥 윈도우 + 계통 정책 (결정적)
│ 매칭 지점 ±N자 안에 강한 허용 토큰 → 통과
│ ①계통이면 허용 토큰이 있어도 → 보류
│
└─[3단] 소형 LLM 분류기 — 1·2단이 보류로 남긴 소수만
"허용"으로 판정될 때만 완화. 장애·타임아웃 → 보류 유지3단이 완화 방향으로만 작동하는 것이 핵심입니다. LLM이 죽으면 자동으로 안전측(보류)에 머뭅니다. 반대로 LLM이 차단을 거는 구조였다면, LLM이 죽은 날 전부 무사통과합니다.
3-5. 1단 — 처방형 단정 패턴
pattern_id
잡는 형태
예
P-01
단정 서술
용신은 甲木이다/입니다
P-02
지정 동사
용신으로 삼는다 / 기신으로 잡는다 / 희신에 해당한다
P-03
등호·콜론
용신 = 甲木 / 격국**:** 정관격
P-04
소유 단정
당신의 용신은 / 이 사주의 격국은
python
# guardrail_eval.py (layer: 규율)
import re
TERMS = ["격국", "용신", "기신", "희신", "格局", "用神", "忌神", "喜神"]
T = "(?:" + "|".join(TERMS) + ")"
PATTERNS = [
("P-01", re.compile(rf"{T}\s*(?:은|는|이|가)\s*\S{{1,12}}?\s*(?:이다|입니다|다\b|예요|이에요)")),
("P-02", re.compile(rf"{T}\s*(?:을|를|으로|로)?\s*(?:삼|잡|정하|쓴|씁|본다|봅니다|해당)")),
("P-03", re.compile(rf"{T}\s*[:=]\s*\S")),
("P-04", re.compile(rf"(?:당신|이 사주|이 명식|귀하)\s*의?\s*{T}\s*(?:은|는)")),
]초안의 f"{term}은 "이 놓치는 것들 — 뒤 공백을 요구하므로 문장 끝(용신은.), 줄바꿈 앞(용신은\n), 붙여쓰기(용신은甲木)가 전부 빠져나갑니다. 한자 표기(用神)도 통과합니다. 차단 규칙에서 한 글자 빈틈은 빈틈이 아니라 통로입니다.
3-6. 2단 — 문맥 윈도우와 허용 토큰 2등급
python
WINDOW = 120 # ⚠ 임의값 — 골든셋으로 보정 (§8-1 1번)
ALLOW_STRONG = ["희기동소", "희귀동소", "喜忌同所",
"격청격탁", "格淸格濁", "재정립", "새로운 관점", "격국론의 한계"]
ALLOW_WEAK = ["비교", "관점", "해체", "기존", "종래", "인용"]
def context_of(text, span, w=WINDOW):
s, e = span
return text[max(0, s - w): min(len(text), e + w)]
def is_allowed_context(ctx) -> bool:
if any(t in ctx for t in ALLOW_STRONG):
return True
return sum(1 for t in ALLOW_WEAK if t in ctx) >= 2약한 토큰을 분리한 이유 — 초안 목록의 "비교"와 "관점"은 아무 통변 문장에나 들어갑니다. "다른 사주와 비교하면"이라는 평범한 문장 하나가 차단을 통째로 해제하게 됩니다.
전거 (문서 기준 · 실측 필요)
전거
source
slide_number
내용
격국용신 재정립
박청화_춘하추동_冬
5161~5165
격국론 한계, 10대 격국
궁합 재정립(희기동소)
박청화_춘하추동_冬
5157~5160
간합 의미·주기성·극복·재정립
새로운 관점
신사주학 春夏秋冬 통합본
§3.4
격국 용신에 대한 새로운 관점
3-7. 2단 — 계통별 차단 정책
lineage
처방형 단정
재정립 인용
근거
① 탈XX 4관법
보류
보류
1,593건에 4어의 긍정 맥락 0건 — ①계통엔 재정립 맥락 자체가 없다
② 박청화 강의
보류
통과
冬편 86~87강, 통합본 §3.4
③ 상리철학
보류
보류
RAG 전량 비활성 — 판단 유보
python
def guardrail_eval(text: str, lineage: str) -> tuple[str, str, dict]:
"""반환: (verdict, reason, meta). verdict ∈ {통과, 수정, 보류}"""
body = strip_quotes(text) # 0단
for pid, rx in PATTERNS:
for m in rx.finditer(body):
ctx = context_of(body, m.span())
if lineage == "gwanbeop":
return "보류", f"[{pid}] ①계통 4어 사용", {"span": m.span()}
if is_allowed_context(ctx):
continue # 이 매칭만 통과 — 전체 통과 아님
return "보류", f"[{pid}] 처방형 단정: '{m.group(0)}'", {"matched": m.group(0)}
return "통과", "패턴 미검출 또는 전 매칭이 허용 맥락", {}continue의 의미가 초안과 다릅니다. 초안은 텍스트 전체를 통과시켰지만, 여기서는 그 매칭 하나만 넘어가고 나머지는 계속 검사합니다.
3-8. 0단 — 인용과 자기 발화 분리
헤르메스 전체본에는 근거 원문이 함께 실립니다. 그 원문이 冬편 86강이면 그 안에 "용신"이 처방형으로 등장하는 것이 정상입니다. 선생의 문장이지 헤르메스의 단정이 아닙니다.
text
▸ 판정 기준 박청화_춘하추동_冬#5161 ← 인용, 검사 제외
<quote>…기존 격국론에서는 용신을 이렇게 정 하지만…</quote>
이 명식은 재성이 강하므로 용신은 甲木입니다. ← 자기 발화, 검사 대상python
QUOTE_RX = re.compile(r"<quote[^>]*>.*?</quote>", re.S)
def strip_quotes(text: str) -> str:
"""인용 블록을 같은 길이의 공백으로 치환 — span 좌표를 보존한다."""
return QUOTE_RX.sub(lambda m: " " * len(m.group(0)), text)같은 길이로 치환하는 이유는 5편 증적에 기록할 span 좌표가 원문 기준과 어긋나지 않게 하기 위해서입니다.
3-9. METHOD — 채점 사다리와 독립성
장표는 채점 경로를 네 단으로 놓고, 일치가 곧 진실은 아니라고 못 박습니다.
단
경로
성격
제 현황
1
사람 수동
기준의 뜻과 빈틈을 이해
골든셋 작성이 이 단계
2
내 봇
빠른 반복 · 같은 경로 편향
3단 LLM 분류기가 여기
3
다른 에이전트
독립성 보강
없음
4
반복실험
참고만
해당 없음
§3-4의 3단 분류기는 2단에 해당합니다. 같은 계열 모델이 만든 문장을 같은 계열 모델이 검증하면, 그것은 교차검증이 아니라 자기 확인입니다. v1.0은 이것을 "3단"이라 부르면서 마치 독립 검증인 것처럼 배치했는데, 이름이 층을 만들지는 않습니다.
당장 3단(독립 경로)을 구현하지는 못합니다. 증적에 cross_verification: not_checked로 남기고, 없는 것을 있는 것처럼 쓰지 않습니다.
3-10. Human Gate — 자동 판정이 최종이 아니다
장표는 자동 채점과 다중 채점이 Proof와 사 람의 최종 판단을 대체하지 않는다고 명시합니다. v1.0에는 이 자리가 없었습니다.
승인 사항
왜 사람인가
승인자
계통별 차단 정책 확정
스승 계통의 태도 차이 판단
교수님
허용어 목록 추가
차단력 손실과 맞바꾸는 결정
교수님
골든셋 정답 라벨
무엇이 처방형 단정인지가 곧 명리학 판단
교수님
프로덕션 GuardrailAgent 교체
현재 위반 0건 상태를 바꾸는 일
교수님
FP 목표치 완화
과잉차단을 얼마나 감수할지
교수님
허용어 추가가 특히 그렇습니다. 오탐 민원이 들어올 때마다 한 개씩 늘리는 것은 합리적으로 보이지만, 6개월 뒤 목록이 40개가 되어 있고 게이트는 사실상 꺼져 있습니다. 그래서 허용어 추가는 골든셋 재측정 + 사람 승인 두 가지를 동시에 통과해야 하는 절차로 묶습니다.
3-11. Repair / Re-eval / Rollback
text
verdict=수정 → 4어 제거 재생성 (1회) → 재검사
├─ 통과 → 새 증적(New Proof)으로 PASS
└─ 여전히 위반 → 보류(BLOCKED)
└─ 같은 pattern_id가
3회 연속 → rollback 판단python
MAX_REGEN = 1 # 재생성 1회. 이후에도 걸리면 보류
def guardrail_with_regen(state) -> dict:
text, lineage = state["draft"], state["lineage"]
for attempt in range(MAX_REGEN + 1):
verdict, reason, meta = guardrail_eval(text, lineage)
if verdict == "통과":
return {"final": text, "guardrail": {"verdict": "통과", "attempt": attempt}}
if attempt < MAX_REGEN:
text = regenerate_without_forbidden(text, meta)
continue
return {"final": None,
"guardrail": {"verdict": "보류", "reason": reason, "attempt": attempt}}ROLLBACK 판단 기준 (v2.0 신설)
조건
조치
같은 pattern_id가 3회 연속 차단
수리 중단 — 합성 프롬프트 구조 재검토
허용어 추가 후 FN이 1건이라도 증가
즉시 이전 목록으로 롤백
문맥 차단 도입 후 프로덕션 위반 0건이 깨짐
즉시 무조건 차단으로 롤백
골든셋 라벨이 흔들림
코드가 아니라 라벨을 먼저 확정
기존 프로덕션 regenerate_without_forbidden은 재생성 후 재검사를 하지 않았습니다. 재생성 결과가 여전히 위반이면 그대로 나갑니다. 재검사 루프를 붙이되 상한을 1로 고정했습니다.
3-12. verdict 3종과 5편 접속
초안 docstring은 3종("통과/수정/보류")이라 적었는데 코드는 2종만 반환했습니다. "수정"이 유령 값이었습니다.
verdict
동작
5편 게이트
rtype
통과
그대로 출력
G-TB-001 pass
FULL/PARTIAL
수정
재생성 1회 → 재검사
재검사 결과 따름
—
보류
출력 차단, 전체본만
G-TB-001 block
BLOCKED
증적에는 이렇게 실립니다.
json
"gate_results": [
{"rule_id": "G-TB-001", "passed": false,
"reason": "[P-01] 처방형 단정: '용신은 甲木입니다'", "severity": "block"}
],
"guardrail": {
"verdict": "보류", "lineage": "gwanbeop", "pattern_id": "P-01",
"matched": "용신은 甲木입니다", "window": 120,
"allow_hits": [], "regen_attempt": 1,
"classifier": {"used": false, "reason": "1·2단에서 확정"},
"cross_verification": {"status": "not_checked"}
},
"verdict": "BLOCK", "rtype": "BLOCKED"allow_hits가 빈 배열인 것이 중요합니다. 왜 허용되지 않았는지가 남아야 나중에 "이건 과잉차단이었다"를 판정할 수 있습니다.
3-13. Eval 골든셋 50건
초안의 케이스 4건은 예시이지 Eval이 아닙니다.
유형
건수
내용
기대
A
10
처방형 단정 (패턴 4종 균등)
보류
B
10
재정립·희기동소 인용
통과
C
10
<quote> 안에만 4어 등장
통과
D
10
먼 곳에 허용 토큰 + 근처에 단정
보류
E
10
계통 대조 (①계통 5 / ②계통 5, 문장 동일)
① 보류 / ② 통과
D 유형이 회귀 탐지 장치입니다. 결함 ①(전역 허용)이 되살아나면 D가 즉시 전부 실패합니다. 통과만 하는 테스트는 안전망이 아니라 장식입니다.
FN과 FP를 대칭으로 두지 않는 이유 — FN은 잘못된 처방이 사람에게 전달되고, FP는 답을 못 받습니다. 상담 자리에서는 전자가 더 위험합니다. FN 0을 먼저 만족시키고, 그 조건 아래에서 FP를 낮춥니다.
(이미지 자리 — 3단 판정 흐름도 + Eval 판정 로그)
결과와 배운 점
4-1. 결함 종합
#
결함
발견
심각도
①
허용 목록이 전역 검사
v1.0
치명
②
continue가 전체를 넘김
v1.0
치명
③
패턴이 조사 3종뿐
v1.0
높음
④
약한 허용어("비교"·"관점") 혼입
v1.0
높음
⑤
verdict "수정"이 유령 값
v1.0
중
⑥
Eval인데 케이스 4건
v1.0
높음
⑦
인용과 자기 발화 미분리
v1.0
높음
⑧
계통 축 없음
v1.0
높음
⑨
BASELINE 없음 — 개선을 증명할 수 없음
v2.0
치명
⑩
3단 분류기가 같은 경로 편향
v2.0
높음
⑪
Human Gate 없음
v2.0
높음
⑫
rollback 판단 기준 없음
v2.0
중
⑬
판정 어휘 partial
v2.0
중
⑨가 치명인 이유는 나머지 열두 개와 층위가 다르기 때문입니다. ①~⑧은 "차단이 제대로 안 된다"는 문제이고, ⑨는 "제대로 됐는지 말할 수 없다"는 문제입니다. 기준선이 없으면 개선도 악화도 증명되지 않고, 남는 것은 인상뿐입니다.
4-2. 설계 변경 기록 (v1.0 → v2.0)
#
v1.0
v2.0
근거
1
지표만
Eval Contract 5필드 + BASELINE 실측 계획
Eval Contract
2
"3단 LLM"
채점 사다리 위치 명시 (2단) + 3단 공백 인정
채점 사다리
3
자동 판정이 최종
Human Gate 5항목
Proof+Gates
4
재생성 1회 후 종료
rollback 판단 4조건
Repair/Re-eval
5
카드 없음
인터페이스 카드 (MUST NOT 4줄)
인터페이스 카드
6
partial
pass/fail/not_checked/blocked
검증 상태 규정
4-3. 규율층 2편의 안티패턴 4종
#
안티패턴
증상
이번 편에서
①
허용 목록 비대화
오탐마다 단어 추가 → 결국 차단 안 됨
강·약 2등급 + 재측정·승인 의무
②
전역 허용
한 곳의 허용어가 전체를 품
문맥 윈도우
③
LLM에 차단을 맡김
LLM이 죽은 날 전부 통과
완화 전용
④
기준선 없이 개선 주장
"좋아진 것 같다"가 결론이 됨
BASELINE 실측 선행
4-4. 표기 변이 — 오타처럼 보이는 것을 지우면 안 된다
같은 한자 喜忌同所가 자료에 두 가지 한글 표기로 존재합니다.
표기
성격
조치
희기동소
한자 정독. 문서 표기 표준
문서·리포트는 이것으로 통일
희귀동소
강의 전사 과정에서 굳어진 변이
매처 허용 목록에 반드시 포함
에러사례집 교정 원칙도 같은 판단입니다 — 喜忌 음차 오류는 문맥이 확실할 때 교정하되, 희귀동소·격청격탁·재정립 맥락은 보존합니다.
여기서 배운 것: 문서 표기 통일과 매처 허용 목록 구축은 방향이 반대입니다. 문서는 하나로 모으고, 매처는 실제 존재하는 변이를 전부 받아들여야 합니다. 매처에서 "희귀동소는 오타니 지우자"고 정리하는 순간, 그 표기를 쓴 섹션을 인용하는 정당한 문장이 전부 차단됩니다.
4-5. 성능
단계
목표
비고
0·1·2단
< 50ms
LLM 미호출 경로가 대부분
3단 (호출될 때만)
< 2s
예상 발동률 5% 미만
4-6. 꿀팁 · 시행착오 · 도움 필요
꿀팁 1 — 단어가 아니라 단정을 막는다. 그리고 "단정"은 조사가 아니라 문형입니다. 조사 목록으로 접근하면 영원히 빈틈이 남습니다.
꿀팁 2 — 허용 목록은 화이트리스트가 아니라 공격면이다. 차단 규칙을 뚫는 것은 악의가 아니라 선의로 쓴 평범한 문장입니다. "비교"가 그랬습니다.
꿀팁 3 — 무엇과 비교할지 먼저 정한다. 기준선 없이 개선을 말하면, 그 개선은 측정이 아니라 소감입니다.
시행착오 1. 무조건 차단 시절 희기동소 설명이 통째로 막혔습니다. 그때는 "금기어를 잘 지키고 있다"고 생각했지 스승의 강의를 잃고 있다고는 생각하지 못했습니다.
시행착오 2. 문맥 조건을 도입했는데 그 허용 목록이 전역으로 적용되고 있었습니다. 과잉차단을 고치다가 과소차단을 만든 것이고, 후자가 더 위험합니다.
시행착오 3. 초안 문서에는 "문맥 윈도우 기반"이라고 이미 적혀 있었습니다. 문서를 믿고 코드를 안 봤다면 못 찾았을 것입니다.
시행착오 4 (v2.0). 개선을 하겠다면서 개선 전 상태를 재 두지 않았습니다. 무조건 차단이 실제로 몇 건을 잘못 막고 있는지 지금도 모릅니다. 문맥 차단을 붙인 뒤에 "좋아졌다"고 쓸 뻔했습니다.
도움 필요 1. 3단 분류기의 재현성 — temperature 0 + 프롬프트 버전 고정 + 판정 증적 기록까지 생각했는데, 모델 버전이 바뀌면 과거 판정과 달라지는 문제는 남습니다.
도움 필요 2. 과잉차단으로 막힌 사용자에게 무엇을 돌려줄지. 사유를 그대로 보여주면 불친절하고, 사람 말로 바꾸면 그 변환에 LLM이 들어와 규율층이 오염됩니다. 5편에서도 같은 지점에서 멈췄습니다.
도움 필요 3. 독립 경로를 어떻게 구성하시는지. 다른 모델이면 충분한지, 검색 인덱스까지 달라야 독립인지.
4-7. 첫 실행 로그
검증 상태 어휘 (공식 4종) — v1.0의 partial 폐기.
상태
뜻
이 편의 적용
pass
기준 충족
FN 0 + FP ≤ 0.10 + D 전건 보류 + 재현성 100%
fail
실행됐으나 미달
FN ≥ 1이면 무조건 fail
not_checked
확인하지 않음
현재 상태
blocked
실행을 막는 이유 있음
골든셋 라벨 미확정 시 (라벨은 교수님 승인 사항)
run-log (6줄 형식)
text
실행한 것: (없음 — Eval 미실행)
입력: 골든셋 50건 (A~E 각 10) — 미작성
관찰한 결과: —
완료 기준 판정: not_checked
막힌 것: 골든셋 라벨 미확정(Human Gate), BASELINE 미측정
확인하지 못한 것: FN·FP 실측, WINDOW 최적값, 표기 변이 실분포, 3단 재현성항목별 상세
#
항목
기록
01
환경 · Skill
(예정) Python 3.11 로컬 / guardrail_eval v0.2.0
02
입력 · 예상
골든셋 50건 → FN 0, FP ≤ 5건, D 유형 10건 전부 보류
03
실제 결과
— (코드·골든셋 모두 미작성·미실행)
04
판정 기준
§3-2 CRITERIA 4항 전부 충족 시 pass
05
잘된 점 · 막힌 점
잘된 점: 계약 5필드에 대보자 BASELINE 공백(결함 ⑨)이 즉시 드러남
막힌 점: ①계통 재정립 인용을 보류로 둘지 미확정 (§8-1 3번)
06
다음에 수정할 한 가지
하나만 — BASELINE을 먼저 잰다. 현행 무조건 차단을 골든셋에 돌려 FN·FP 실측
07
최종 상태
not_checked
08
검증 방법
미해당
v1.0에서는 06번을 "골든셋 D 유형 작성"으로 잡았는데, 순서를 바꿨습니다. 골든셋을 만들면 그것으로 새 코드를 먼저 재고 싶어집니다. 기준선을 먼저 재 두지 않으면 그 숫자는 비교 대상이 없습니다.
4-8. 사례글 6요소 대응
요소
본문 위치
하려던 일
§2-2 · §3-2 GOAL
흔들린 지점
§4-1 결함 ①~⑬
분해 기준
§2-1 게이트/가드레일 경계 + §3-3 MUST NOT
연결 구조
§3-4 3단 + §3-12 5편 접속
실행 근거
§4-7 — not_checked. BASELINE조차 미측정임을 명시
배운 점 · 다음 질문
§4-6 · §5
< 앞으로의 계획 >
직접 연결 — 사례글 7 (Agent Harness 조립). 1~6편을 하나의 하네스로 묶습니다. 6편이 제공하는 것은 G-TB-001 판정과 BLOCKED 경로입니다.
단기 실행 순서 — 서버 없이 되는 것부터.
BASELINE 측정 — 현행 무조건 차단을 골든셋에 돌려 FN·FP 실측
골든셋 D 유형 10건 작성 → 결함 ① 회귀 탐지 확보
A·B·C·E 40건 보강 → 신규 로직 1차 측정 → 1번과 대조
WINDOW를 80/120/200으로 바꿔 FP 곡선 확인서버 접속 후 §8-2 쿼리로 표기 변이 실분포 확인 → 허용 목록 보정
W3 예고 질문. W3가 시작·통과·중단·수리를 다룬다면, 6편이 남긴 질문이 그대로 W3의 것입니다 — 같은 질의가 계속 차단될 때 몇 번까지 재생성할 것인가(Retry), 언제 사람에게 넘길 것인가(Approval), 무엇을 보면 완전히 멈출 것인가(Stop).
주의 — 기존 GuardrailAgent 보호. 프로덕션의 금기어 4어 차단(위반 0건 유지 중)은 그대로 둡니다. 6편의 문맥 판정은 헤르메스 그래프 안에서만 동작하고, 골든셋으로 FN 0이 실측되고 교수님 승인을 받은 뒤에야 프로덕션 전환을 논의합니다.
도움 받은 글 (옵션)
23기 W2 정규세션 장표 — Eval Contract 5필드, 채점 사다리, Proof+Gates, Repair/Re-eval
23기 W2 수행 Skill — 검증 상태 4종, run-log 6줄 형식
박청화 신사주학 春夏秋冬 통합본 §3.4 — 격국 용신에 대한 새로운 관점 (판단 전거)
박청화 춘하추동 冬편 86~87강 — 격국용신 재정립, 10대 격국
박청화 춘하추동 95강 vs 탈XX 4관법 비교 소감 v2.0 — 금기의 절대성 vs 재해석의 유연성
한바둑 에러사례집 v7 — 喜忌 음차오류 교정 원칙
헤르메스 사례글 5 상세본 v2.0 —
G-TB-001빈자리