헌법 행위분류 회귀 27+케이스 확장 + CI 러너 (Q4/Q5)
개요
행위분류.한선(자연어→8축 벡터 분류기) 회귀 테스트를 14케이스→29케이스로
확장하고, 신규 CI 러너 스크립트를 작성했다.
무엇을 했는지
test_행위분류_회귀.한선에 v3(15케이스, 15~29번) 추가:
- 하드트립 4축(생명존엄/진실/청지기/자유) 개별 단독 커버 완성(청지기 단독 15번 추가)
+ 4축 전원 동시 A 스트레스 케이스(24번)
- D3 화행구분(보고어마커 무효화) 신규 회귀 3종: 반박 인용 무효화(16), 윈도우 밖이라
무효화 안 되는 경계(17), 매치 이전(앞쪽) 마커도 무효화되는 대칭 케이스(18)
- 부정어목록 11개 중 미검증이던 5개(방지/불가/말고/안됨/안함) 개별 실사용 확인(19~23)
- 비하드트립 4축(약자보호/사랑/안식/초월겸손) 개별 단독 T/A 커버(25~28)
- 완전 무매칭 재확인(숫자만, 29번)
- 모든 기대벡터는 probe 스크립트(
/tmp/probe.한선)로 행위분류() 실측 후 손으로
축id·우선순위·윈도우 경계를 재추적해 확정(정직성 원칙)
- 컴파일+실행 전건 PASS 확인: `./hanseonc_high test_행위분류_회귀.한선 > /tmp/t.toau
2>/tmp/t.err && ./crownyc run /tmp/t.toau
→ 결과: 통과=29 실패=0 전체=29`
- CI 러너 신규 작성:
~/.claude/scripts/헌법회귀.sh (ASCII 변수, bash)
- 컴파일(stderr 분리)+실행+[PASS]/[FAIL] grep 집계
- 실패 1건 이상 또는 컴파일 실패 또는 실행 exit≠0 → exit 1
-
-q 옵션(요약만 출력)
- 헌법성장.sh 등에서 명시 호출 가능한 독립 스크립트로 설계(데몬 아님, settings.json
훅 배선은 하지 않음 — 사용자 승인 필요 영역이라 스킵)
- 실패주입 테스트로 exit 1 경로도 검증(임시로 기대벡터 오염 후 FAIL 감지 확인, 즉시 원복)
관련 파일
/Users/ef/CrownyOS/crownyc/test_행위분류_회귀.한선 (29케이스)
/Users/ef/CrownyOS/crownyc/libs/행위분류.한선 (수정 없음, 기존 D2/D3 로직 그대로 검증)
/Users/ef/CrownyOS/crownyc/data/헌법6561/행위규칙.psv (수정 없음)
~/.claude/scripts/헌법회귀.sh (신규)
실행증거
- 최종 케이스수: 29
- 전건 PASS: 통과=29 실패=0 (VM 실행 로그, exit=0)
- 러너 실행:
~/.claude/scripts/헌법회귀.sh → [헌법회귀] 결과: PASS (전 케이스 통과), exit=0
- 러너 실패경로 검증: 케이스 29 기대값 임시 오염 →
PASS=28 FAIL=1, exit=1 확인 후 즉시 원복
잔여 이슈
- RPN 경로(hanseonc_std)는 배열 인덱싱 desugar 미구현으로 아직 못 태움(D1 잔여, 파일
헤더 주석에 명시). 고수준 경로(hanseonc_high)만 검증됨.
- CI 훅(settings.json 자동 배선)은 사용자 승인 필요 영역이라 이번 작업 범위에서 제외.
러너 스크립트는 명시 실행 전용으로만 제공.
- 27조항 중 축조항연계.psv상 각 조항까지 1:1 매핑된 케이스는 아니고, 8축(축정의.psv)
레벨 커버리지 기준으로 27+를 달성함(축 단위 커버는 100%: 8축 전부 개별/조합 케이스 보유).