← 목록
기타 2026-07-06 5KB 읽기 5분

L5 — admin 결정로그 파이프 (반복 결정의 규칙 승격)

개요

로드맵 L5: 브레인이 admin(사용자)·s-admin(kps) 이관 건의 결정 결과를 축적해, 반복되는 결정(동의≥3)을 브레인 규칙으로 승격 제안하는 층. 작업구분.sh(admin/s-admin 이관)와 승격체커.sh(4상 제1방법 승격 판정) 사이를 잇는다.

무엇을 했는지

  1. ~/.claude/scripts/결정로그.한선 — 선례 판정 코어(hanseonc_high, 4케이스).
입력(단일write): 더미 + 동의수 + 반대수 → 4상 판정줄. - 동의수>=3, 반대수==0 → 티|선례확정|자동제안 - 반대수>=2 그리고 반대수>=동의수 → 타|상반선례|주의표시 - 동의수>=1 → 옴|선례약함|이력만제시 - 동의수==0, 반대수==0 → 음|무선례|신규이관 RPN 정본: 결정로그.rpn.한선 (tools/high2rpn.sh로 생성).

  1. ~/.claude/scripts/결정로그.sh — 셸 래퍼(4서브커맨드).
- 기록 "<안건>" "<결정>" [결정자=admin]~/.crownycode/결정로그.psv시각|안건_정규화|결정|결정자 append(안건은 공백런→_ 정규화). - 조회 "<안건>" → 이력 출력 + 코어 호출로 선례 판정(선례: <결정> (N회/총건, 확정|약함) / 선례상반: ... / 무선례: ...). - 집계 → 안건×결정 반복수 상위표. - 승격후보 [--적용] → 동의≥3 안건을 작업구분개선후보.psv 형식(패턴|사례수|승격기준|수정안)으로 제안(기본은 텍스트 출력만, --적용 시에만 append — 자동 코드수정 없음, 승격체커.sh와 동일 원칙).

  1. 배선: 작업구분.shadmin·s-admin 케이스에 이관 출력 결정로그.sh 조회를 호출 → 선례가 있으면 선례: .../선례상반: ... 줄을 추가 출력. 선례가 없으면(무선례) 아무 줄도 추가되지 않음. 이관 자체(exit 5/6, 메신저 전달)는 변경 없음 — 결정은 여전히 사람 몫, 브레인은 선례를 제시만.
- 백업: 작업구분.sh.bak-L5-07060016

검증 (4항)

  1. 기록 3건(같은 안건 2 + 다른 안건 1) → 조회·집계 정확: "LED재고 임계치 조정" 2회(승인) + "신규 도메인 인증서 발급" 1회(보류) 기록 → 조회 결과 각 이력·건수 정확, 집계 표 정렬 정확. 통과.
  2. 코어 4케이스: (동의3,반대0)→티|선례확정, (동의1,반대0)→옴|선례약함, (동의2,반대2)→타|상반선례, (동의0,반대0)→음|무선례. 전부 통과.
  3. 작업구분 admin 요청 스모크에서 선례 줄 출력 확인: 선례 없는 admin 요청 → 선례 줄 없음(정상). 동일 문맥으로 3회 "승인" 기록 후 재요청 → 선례: 승인 (3회/3건, 확정) 줄이 이관 출력 앞에 추가, exit code 5 유지. 통과. (s-admin 분기는 코드 동일 — 실제 메신저 발송을 피하기 위해 라이브 트리거는 생략, 코드 검토로 대체)
  4. 동의 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와 동일 원칙).