승격체커 — 4상 제1방법 자가개선 자동승격 체커
개요
크라우니 4상 제1방법(벡터형/통계): 반복 패턴 누적 동의≥3 → 티(자동승격) / 비동의≥3 → 타(기각).
기존에는 ~/.crownycode/작업구분개선후보.psv(패턴|사례수|승격기준|수정안)와
~/.crownycode/작업구분로그.psv(시각|레벨|문맥)를 사람이 수동 리뷰했다. 이를 자동화하는
4상 판정 코어 + 로그 재집계/알림 래퍼를 구축했다.
무엇을 했는지
1. 승격체커.한선 (판정 코어, hanseonc_high)
- 입력: 단일 write, 개행 4줄(더미+3줄: 패턴명/사례수/반증수) — VM 입력() 다중리드 함정 3종
티|자동승격|<패턴명>|수정안-적용-가능타|기각|반증우세옴|관찰중|<사례수>/3음|데이터없음|로그-축적-대기티|자동승격|테스트패턴A|수정안-적용-가능타|기각|반증우세옴|관찰중|2/3음|데이터없음|로그-축적-대기2. 승격체커.sh (래퍼)
scan: 개선후보.psv의 각 패턴을 등록된 매처(현재 "문서화요청_본문작성어_t2상향" 1건)로
[매처없음-유지]).
check: 패턴별로 코어 호출 → 티 판정이면 "승격 알림: <수정안>" 출력 + ENFORCE_NOTICE.md에
status: 패턴·사례수·판정 표.
3. scan 집계 결과 (실측, 2026-07-05)
패턴 "문서화요청_본문작성어_t2상향" 매처 = "로그에서 레벨==t2 이고 문맥이 '문서화'로 시작하는 행 수" (작업 지시문의 예시 정의를 그대로 구현).
- t2 레벨 전체 행: 4건(줄2,5,12,13)
- 이 중 문맥이 정확히 "문서화"로 시작하는 행: 1건 (줄13
문서화해줘: 브레인t1 2호...) - 줄12(
이 내용 문서화해줘: ...)는 "문서화"를 포함하지만 "이 내용"으로 시작해 접두 매칭에서
- 결과: scan 재집계값 = 1건. 기존 psv에 수동 기록돼 있던 사례수 "2"와 다르다
$3 ~ /문서화/로 바꾸면 된다(현재는 지시문 예시의
"시작" 정의를 문자 그대로 구현).
- 두 번째 후보 "데이터검증_t1선시도_미배선"은 로그에 대응 신호(스키마/범위체크/형식검사가
4. check/status 스모크
status(scan 전): 문서화 패턴 2건→옴|관찰중, 데이터검증 패턴 0건→음|데이터없음.scan실행 후 psv 갱신: 문서화 패턴 1건.check(scan 후): 두 패턴 모두 옴/음 — 현재 데이터로는 티(자동승격) 트리거 없음.- 티 알림 경로는 임시 psv(사례수=4로 세팅)로 별도 검증:
승격 알림: ...출력 +
5. RPN 변환(참고) + 학습
승격체커.rpn.한선:tools/high2rpn.sh로 자동 변환(참고용). 자동변환기가 다중행 문자열
혹시(else-if) 체인을 완전히 변환하지 못하는 기존 한계(기존 브레인검증.rpn.한선도
동일 한계 보유)로 그대로 실행 가능한 정본은 아니며, 정본 실행은 승격체커.한선
(hanseonc_high)이다.
crownycode-learn.sh add "승격체커_4상제1방법" ...→crownycode-brain.sh learn경유로
lookup "승격체커_4상제1방법" HIT 확인.관련 파일
/Users/ef/.claude/scripts/승격체커.한선— 4상 판정 코어(정본)/Users/ef/.claude/scripts/승격체커.sh— scan/check/status 래퍼/Users/ef/.claude/scripts/승격체커.rpn.한선— RPN 변환(참고, 미검증)/Users/ef/.crownycode/작업구분개선후보.psv— 승격 후보(사례수 갱신됨)/Users/ef/.crownycode/작업구분로그.psv— 원본 로그(레벨|문맥)/Users/ef/.claude/knowledge/ENFORCE_NOTICE.md— 알림 텍스트 append 대상(수동)
잔여 이슈
- "문서화" 매칭 기준(시작 vs 포함)이 지시문 예시와 기존 수기값(2) 사이에 실제로 어긋난다 —
count_for_pattern()은 패턴명별 하드코딩 매처 방식(확장형 dispatch) — 새 후보가 추가되면
- 반증사례수(반증) 자체를 psv/log에서 자동 집계하는 로직은 아직 없음(현재 check는 반증수=0
- 자동 코드/규칙 반영(승격된 수정안을 실제로 작업구분.한선 등에 적용)은 이 도구 범위 밖 —