---
name: auditor_call_log RESOLVED word boundary 결함
description: 2026-04-20 #48 A 집행 중 발견. auditor_call_log.sh의 grep -q "RESOLVED"가 "UNRESOLVED" 부분문자열 매칭되어 RESOLVED append 항상 실패. C35-10 경고 무시 해소 사이클 구조적 무력화. grep -qw word boundary로 수정
type: feedback
---

# auditor_call_log.sh RESOLVED word boundary 결함

## 실증 (2026-04-20)

본 세션 #48 A 집행 중 `auditor_call_log.sh` RESOLVED append 로직 수동 재현 시 발견.

### 타임라인
- 2026-04-20 11:09:10: PM Edit(PD 지시 로그) → auditor_guard.sh → `2026-04-20.log`에 `UNRESOLVED target=의무 영역 파일 수정` append
- 2026-04-20 11:10: pm-auditor Task 호출 → auditor_call_log.sh 실행 (`pm-auditor called` 기록 38B)
- 2026-04-20 11:12 수동 재현: `tail -1`이 UNRESOLVED 라인 반환, `grep -q "RESOLVED"` **true** (UN**RESOLVED** 부분문자열 매칭), `!` 부정으로 **false** → append 실패

### 결함 코드 (수정 전)

`scripts/auditor_call_log.sh:27`
```bash
if grep -q "UNRESOLVED" "$wf" 2>/dev/null && ! tail -1 "$wf" | grep -q "RESOLVED"; then
```

`grep -q "RESOLVED"`는 "UNRESOLVED"·"RESOLVED" 모두 매칭. **마지막 줄이 UNRESOLVED이면 항상 RESOLVED 매칭 true → 조건 false → append 영구 실패**.

## 영향

- **C35-10 경고 무시 해소 사이클 구조적 무력화**: pm-auditor 호출이 UNRESOLVED 해소 기능 전혀 작동 못 함
- `audit_pattern_analyzer.sh`가 매 SessionStart에서 "미해소 경고 N건" 환기 지속 → PD님·PM 인지 피로
- **모든 PC 공통 구조 결함** (본 PC·전 PC 무관)

## 해결 (2026-04-20 #48 A 집행)

### 수정
`grep -q "RESOLVED"` → `grep -qw "RESOLVED"` (-w: word boundary)
- "UNRESOLVED" 라인 → `-qw RESOLVED` false (정확)
- "2026-04-20 RESOLVED by pm-auditor call" → `-qw RESOLVED` true

### 집행
1. `scripts/auditor_call_log.sh:28` 수정 (word boundary 적용 + 결함 주석)
2. 본 PC `2026-04-20.log` 수동 RESOLVED append (수정 로직 즉시 검증)
3. git 반영으로 모든 PC 자동 동기화

## 잔여 과제 (G 신규 안건 연계)

**전 PC(2026-04-19 실증 PC)에서 `auditor_call_log.sh` 파일 자체가 생성 실패**한 원인은 본 결함과 **다른** 이슈. 본 PC에서는 정상 생성 확인. PC 특이적 환경 차이(stdin 인코딩·경로·hook 실행 환경) 추정. 해당 PC 세션 재방문 시 재현 조사 필요 → **G 신규 안건 "PC 로컬 상태 동기화 메커니즘 검토"**와 연계.

## 교훈

1. **부분문자열 매칭 함정**: 단어 기반 로그 검색은 반드시 `-w`(word boundary) 또는 정규식 `\b` 또는 명시적 구분자(공백·탭). 접두사·접미사가 있는 단어군에서 `grep -q` 단순 사용 금지
2. **감사 체계 자체 감사**: C35-9 Layer 2 설계 당시 본 로직이 6번 이상의 PD님 승인·집행을 통과했음에도 발견 안 됨. pm-auditor 5-E 체크 "감사 체계 자체 자기 검증" 정기화 검토
3. **수동 재현 가치**: 자동 hook은 사일런트 실패 가능. PC 변경 시 수동 재현으로 구조 결함 조기 발견 가능

## 연관

- **C35-9** Layer 2 호출 기록 + UNRESOLVED 해소 처리
- **C35-10** 경고 무시 PD 우선 보고 + 장기 패턴 분석 개선 사이클
- `memory/org/feedback_pm_warning_ignored_pattern.md` (상위 누적 SOT)
- `memory/org/feedback_c35_initial_enforcement.md` (C35 최초 집행 실증)
- #48 B: `pm_context_restore.sh` 경로 기반 필터 전환 (동일 일자 집행)
- #48 C: 본 PC 2026-04-20 UNRESOLVED 수동 해소 (A 수정 로직 즉시 검증)

## 재발 방지 체크리스트

pm-auditor 감사 시 신설 스크립트·hook 검토 추가 문항:
- [ ] 로그·상태 플래그 기반 분기 로직에 **접두사·접미사 변종** 가능성 검토했는가?
- [ ] `grep -q` 사용 시 `-w`·`-x`·정규식 경계 필요성 판단했는가?
- [ ] 결함 시 사일런트 실패가 아닌 **의미 있는 에러 또는 로그** 출력 설계했는가?
