# task-889.1 완료 보고서: Exit code 144 보완 조치 5건 실행

## SCQA

**S**: task-888.1 조사에서 pkill exit code 144로 인한 sibling 도구 호출 실패 원인이 규명되었으며, 5건의 보완 권고가 도출되었다.

**C**: 권고가 구현되지 않으면 동일 사고가 반복될 수 있다. 특히 careful-check.sh에 kill 명령 감지가 없어 위험 패턴이 사전 차단되지 않는다.

**Q**: 5건의 보완 조치를 모두 구현하여 재발을 방지할 수 있는가?

**A**: 5건 모두 구현 완료. careful-check.sh에 3종 kill 명령 감지 추가 (위험 패턴 3/3 감지, 안전 패턴 2/2 통과 확인), DIRECT-WORKFLOW.md에 안전 규칙 3건 추가 (규칙 3 보강 + 규칙 6, 7 신설), claude-code-known-issues.md 생성 완료. bash -n 문법 검증 통과, grep 키워드 검증 통과.

---

## 작업 내용

### 권고 1: pkill 패턴 표준화 (DIRECT-WORKFLOW.md)
- 기존 규칙 3에 pkill/kill/fuser 특수성 설명 + 예시 추가
- `prompts/DIRECT-WORKFLOW.md:65-66`

### 권고 2: lsof/fuser 패턴 표준화 (DIRECT-WORKFLOW.md)
- 새 규칙 7 추가: lsof/fuser 포트 종료 안전 패턴 (위험 vs 안전 비교)
- `prompts/DIRECT-WORKFLOW.md:81-90`

### 권고 3: careful-check.sh kill 명령 감지 추가
- 3종 감지 패턴 추가: pkill_unsafe, kill9_unsafe, xargs_kill_unsafe
- `hooks/careful-check.sh:110-132`

### 권고 4: DIRECT-WORKFLOW.md 안전 규칙 보강
- 새 규칙 6 추가: 프로세스 종료 명령 **단독 순차 실행** + `|| true` 필수
- `prompts/DIRECT-WORKFLOW.md:69-80`

### 권고 5: Claude Code 알려진 이슈 문서 생성
- `memory/specs/claude-code-known-issues.md` 신규 생성 (58줄)
- #22264 (Bash Promise.allSettled 미전환) 이슈 추적 + 업데이트 체크리스트

---

## 생성/수정 파일 목록

- 수정: `/home/jay/workspace/hooks/careful-check.sh` (3종 kill 감지 패턴 추가)
- 수정: `/home/jay/workspace/prompts/DIRECT-WORKFLOW.md` (규칙 3 보강 + 규칙 6, 7 신설)
- 생성: `/home/jay/workspace/memory/specs/claude-code-known-issues.md` (58줄)

---

## 테스트 결과

### careful-check.sh 감지 테스트 (5/5 통과)

- `pkill -f test` → 감지 (pkill_unsafe 경고) ✅
- `kill -9 12345` → 감지 (kill9_unsafe 경고) ✅
- `lsof -ti:8000 | xargs kill` → 감지 (xargs_kill_unsafe 경고) ✅
- `pkill -f test || true` → 미감지 (안전, 빈 JSON) ✅
- `lsof -ti:8000 | xargs -r kill` → 미감지 (안전, 빈 JSON) ✅

### DIRECT-WORKFLOW.md 키워드 검증 (3/3 통과)

- `grep "프로세스 종료"` → 2건 (line 65, 69) ✅
- `grep "lsof"` → 5건 (line 74, 79, 81, 84, 88) ✅
- `grep "pkill"` → 5건 (line 65, 66, 69, 72, 77) ✅

### 문법 검증

- `bash -n careful-check.sh` → SYNTAX_OK ✅
- `claude-code-known-issues.md` → 58줄, EXISTS ✅

---

## 발견 이슈 및 해결

### 자체 해결 (1건)
1. **team_prompts.py에 pkill 규칙 미추가** — team_prompts.py는 DIRECT-WORKFLOW.md를 참조하는 구조이므로, DIRECT-WORKFLOW.md에만 추가하면 모든 팀의 프롬프트에 자동 반영됨. dispatch.py도 마찬가지로 직접 pkill을 생성하지 않으므로 수정 불필요.

### 범위 외 미해결 (2건)
1. **kill -9 + `|| true` 감지 정밀도** — `kill -9 $(cmd) 2>/dev/null || true` 패턴은 안전하지만 현재 regex가 `|| true`를 별도 행으로 쓸 경우 감지할 수 있음. 실제 사용 빈도가 낮아 현재 수준으로 충분하나, 추후 edge case 발견 시 보완 필요.
2. **#22264 이슈 해결 모니터링** — Claude Code 업데이트 시 해결 여부 확인 필요. 현재 워크어라운드로 방어 중.

---

## QC 검증 결과

- **overall**: PASS (5 PASS, 7 SKIP)
- file_check: PASS (4/4 파일 존재, 보고서 3753 bytes)
- data_integrity: PASS (task-889.1 status=running 정상)
- critical_gap: PASS
- spec_compliance: PASS
- duplicate_check: PASS (최대 유사도 10.4%)
- pyright_check: SKIP (Python 파일 없음 — .sh/.md만 수정)
- test_runner: SKIP (관련 테스트 파일 0개)
- tdd_check: SKIP (Lv.1 설정/문서 작업)
- .done 파일: `qc_verify.py --gate`에 의해 자동 생성
