**task-1139.1 완료 보고** (dev5-team) **완료 보고서: 팀원 에이전트 작업 상태 신호등 미반영 수정** (18분 25초) **핵심 결과** 공유 라이브러리 `parse-member-id.sh`를 생성하여 organization-structure.json의 전체 55명을 매핑하고, 양쪽 hook에서 이를 소싱하도록 수정. pytest 4건 전체 통과, pyright 에러 0건. E2E 테스트로 마케팅/dev5/dev6팀 멤버의 working→idle 전환 정상 확인. ## 근본 원인 분석 `/home/jay/.claude/hooks/pre-tool-use.sh`의 `parse_member_id()` 함수에 에이전트 이름→ID 매핑이 dev1(5명), dev2(5명), dev8(4명), 횡단(6명) = 20명만 존재했다. 나머지 35명은 매핑이 없어 Task tool 호출 시에도 member-status.json에 기록되지 않았다. 서버(server.py)와 프론트엔드(utils.js)의 상태 결정 로직은 member-status.json을 **우선 참조**하도록 올바르게 구현되어 있었으므로, hooks의 매핑만 완성하면 해결되는 구조였다. ## 수정 내용 ### 1. `/home/jay/.claude/hooks/lib/parse-member-id.sh` (신규) - 전체 55명 에이전트의 한국어/영어 이름→ID 매핑 함수 - substring 충돌 방지 (아누비스→아누, 라타토스크→라 등) - PCRE lookahead/lookbehind로 짧은 이름(라, 루, 에코)의 오탐 방지 - 공유 라이브러리로 설계하여 양쪽 hook에서 소싱 ### 2. `/home/jay/.claude/hooks/pre-tool-use.sh` (수정) - 인라 테스트: pyright 0 errors **발견/해결 이슈 4건** 1. **pixel(픽셀) 에이전트 누락** — 아누 직할 사원으로 org-structure에 존재. parse-member-id.sh에 추가 2. **hooks 인라인 매핑 중복** — pre-tool-use.sh와 post-tool-use.sh에 동일 함수가 중복 존재. 공유 라이브러리로 통합 3. **test 파일 pyright 경고** — `_extract_ids_from_node(node: dict)` 파라미터 타입을 `object`로 변경하여 unreachable code 경고 해소 4. **server.py timezone 파싱 버그** — 미해결: `datetime.fromisoformat("...Z")` 파싱 후 timezone-aware/naive 비교 오류. 기존 테스트 `test_timezone_aware_since_not_stuck_working` 1건 실패. 범위 외 사유: server.py 코드 변경은 본 작업 지시 범위 밖이며, 별도 작업으로 수정 필요