L5 — admin 결정로그 파이프 (반복 결정의 규칙 승격)
개요
로드맵 L5: 브레인이 admin(사용자)·s-admin(kps) 이관 건의
결정 결과를 축적해, 반복되는 결정(동의≥3)을 브레인 규칙으로 승격 제안하는 층.
작업구분.sh(admin/s-admin 이관)와
승격체커.sh(4상 제1방법 승격 판정) 사이를 잇는다.
무엇을 했는지
~/.claude/scripts/결정로그.한선 — 선례 판정 코어(hanseonc_high, 4케이스).
입력(단일write): 더미 + 동의수 + 반대수 → 4상 판정줄.
- 동의수>=3, 반대수==0 →
티|선례확정|자동제안
- 반대수>=2 그리고 반대수>=동의수 →
타|상반선례|주의표시
- 동의수>=1 →
옴|선례약함|이력만제시
- 동의수==0, 반대수==0 →
음|무선례|신규이관
RPN 정본:
결정로그.rpn.한선 (
tools/high2rpn.sh로 생성).
~/.claude/scripts/결정로그.sh — 셸 래퍼(4서브커맨드).
-
기록 "<안건>" "<결정>" [결정자=admin] →
~/.crownycode/결정로그.psv에
시각|안건_정규화|결정|결정자 append(안건은 공백런→
_ 정규화).
-
조회 "<안건>" → 이력 출력 + 코어 호출로 선례 판정(
선례: <결정> (N회/총건, 확정|약함) /
선례상반: ... /
무선례: ...).
-
집계 → 안건×결정 반복수 상위표.
-
승격후보 [--적용] → 동의≥3 안건을
작업구분개선후보.psv 형식(
패턴|사례수|승격기준|수정안)으로 제안(기본은 텍스트 출력만,
--적용 시에만 append — 자동 코드수정 없음, 승격체커.sh와 동일 원칙).
- 배선:
작업구분.sh의 admin·s-admin 케이스에 이관 출력 전 결정로그.sh 조회를 호출 → 선례가 있으면 선례: .../선례상반: ... 줄을 추가 출력. 선례가 없으면(무선례) 아무 줄도 추가되지 않음. 이관 자체(exit 5/6, 메신저 전달)는 변경 없음 — 결정은 여전히 사람 몫, 브레인은 선례를 제시만.
- 백업:
작업구분.sh.bak-L5-07060016검증 (4항)
- 기록 3건(같은 안건 2 + 다른 안건 1) → 조회·집계 정확: "LED재고 임계치 조정" 2회(승인) + "신규 도메인 인증서 발급" 1회(보류) 기록 → 조회 결과 각 이력·건수 정확, 집계 표 정렬 정확. 통과.
- 코어 4케이스:
(동의3,반대0)→티|선례확정, (동의1,반대0)→옴|선례약함, (동의2,반대2)→타|상반선례, (동의0,반대0)→음|무선례. 전부 통과.
- 작업구분 admin 요청 스모크에서 선례 줄 출력 확인: 선례 없는 admin 요청 → 선례 줄 없음(정상). 동일 문맥으로 3회 "승인" 기록 후 재요청 →
선례: 승인 (3회/3건, 확정) 줄이 이관 출력 앞에 추가, exit code 5 유지. 통과. (s-admin 분기는 코드 동일 — 실제 메신저 발송을 피하기 위해 라이브 트리거는 생략, 코드 검토로 대체)
- 동의 3 도달 시 승격후보 제안 텍스트 확인: "LED재고 임계치 조정" 3회 축적 후
결정로그.sh 승격후보 → 결정선례_LED재고_임계치_조정 | 사례수=3 | 결정=승인 + 수정안 텍스트 출력, --적용 없이는 작업구분개선후보.psv 미변경 확인. 통과.
검증에 사용한 테스트 픽스처(LED재고/신규도메인/예산500만원 등)는 검증 후
~/.crownycode/결정로그.psv에서 정리(실사용 로그는 신규 파일이었으므로 삭제로 클린 스타트).
관련 파일
/Users/ef/.claude/scripts/결정로그.한선 (코어)
/Users/ef/.claude/scripts/결정로그.rpn.한선 (RPN 정본)
/Users/ef/.claude/scripts/결정로그.sh (래퍼: 기록/조회/집계/승격후보)
/Users/ef/.claude/scripts/작업구분.sh (admin/s-admin 배선 추가, 백업: 작업구분.sh.bak-L5-07060016)
/Users/ef/.crownycode/결정로그.psv (데이터, 신규 — 실사용 시작 시 축적됨)
/Users/ef/.crownycode/작업구분개선후보.psv (승격후보 --적용 시 append 대상, 기존 파일 공유)
/Users/ef/.claude/templates/한선씨-가드레일.md (bash 한글 변수명 함정 항목 추가)
신규 발견 함정 (가드레일/메모리 반영 완료)
macOS bash 3.2는 ko_KR.UTF-8 로케일에서도 한글 변수명(
안건="값")을 명령으로 오인 →
command not found. 한선씨(.한선)는 한글 변수명이 필수지만,
bash(.sh) 래퍼는 변수명을 반드시 ASCII로(문자열 값·출력은 한글 유지).
작업구분.sh/
승격체커.sh도 이미 이 관례를 따르고 있었음(사후 확인).
잔여 이슈
- s-admin 분기의 실메신저 발송 경로는 라이브 테스트 생략(코드는 admin과 동일 패턴이라 위험 낮음으로 판단) — 실제 s-admin 이관 발생 시 최초 1건에서 육안 확인 권장.
결정로그.sh 조회의 반대수 계산은 "총건수-최다결정건수"로 근사(3자 이상 갈린 결정 분포엔 근사치) — 결정지가 3종 이상으로 갈리는 사례가 쌓이면 상반선례 판정식 재검토 필요.
- 승격후보 자동
--적용 배선(작업구분.sh 개선후보 자동 반영)은 이번 범위 밖 — 사람 검토 후 수동 적용 원칙 유지(승격체커.sh와 동일 원칙).