**task-1142.1 완료 보고** (dev4-team) **완료 보고서: 팀원 에이전트 이름→ID 매핑 동적 로드 구현** (20분 29초) **핵심 결과** Python 제너레이터(`generate-member-map.py`)가 org-structure.json을 파싱하여 bash 캐시 파일을 자동 생성하는 구조로 전환. `parse-member-id.sh`는 캐시 만료를 자동 감지하여 재생성 후 소싱. org-structure.json의 73개 에이전트가 모두 매핑되며, pytest 16/16 통과, pyright 에러 0건. ## 수정 내용 ### 1. `/home/jay/.claude/hooks/lib/generate-member-map.py` (신규, 283줄) - org-structure.json 재귀 파싱으로 에이전트 id/name 추출 - name 필드 `"한국어 (English)"` 형식 자동 파싱 - Substring 충돌 자동 감지 및 매칭 순서 결정 (긴 이름 먼저) - 한국어/영어 PCRE 경계를 독립적으로 판단: - 한국어 1글자(루,라) + 예외("에코"): PCRE 경계 적용 - 영어 ≤4글자: `\b` word boundary 적용 - 2글자+ 한국어 이름에는 경계 미적용 (조사 붙어도 매칭: "토르가 개발") - 특수 이름 처리: Ah Kin, Ma'at, Da Vinci, Áine - `.member-map-cache.sh` 캐시 파일 출력 ### 2. `/home/jay/.claude/hooks/lib/parse-member-id.sh` (전면 교체, 34줄) - 72개 하드코딩 if/elif 체인 제거 - 캐시 만료 자동 감지 (org-structure.json mtime vs 캐시 mtime 비교) - 캐시 없 테스트: pyright 0 errors **발견/해결 이슈 5건** 1. **isis→bastet 불일치** — org-structure.json에서 isis가 bastet으로 교체되었으나 기존 코드에 isis 잔존. 동적 로드로 자동 해결 (org-structure.json 기준으로 생성) 2. **PCRE 경계 과잉 적용 버그** — 초기 구현에서 영어 이름 길이(≤4) 기준으로 한국어 이름에까지 PCRE 경계를 적용하여 "토르가 개발"이 매칭 실패. 한국어/영어 경계 판단을 독립 분리하여 해결 3. **dev5 테스트 호환성 깨짐** — `get_mapped_ids()`가 parse-member-id.sh 파일 내용에서 직접 echo 패턴을 찾는 방식이라 동적 로드 후 실패. 캐시 파일도 참조하도록 수정 4. **Ma'at 작은따옴표 이스케이프** — bash single-quote 패턴에 `'`가 포함되면 구문 오류. double-quote grep 패턴으로 분리 처리 5. **server.py timezone 파싱 버그** — 미해결: task-1139.1에서 보고된 기존 이슈. `test_timezone_aware_since_not_stuck_working` 1건 실패. 범위 외 사유: server.py 코드는 본 작업 지시 범위 밖