# PR #264 — HIGH microfix 후 MED backlog/evidence-resolve packet (thread resolve/merge 전 검토용)

상태명: `PR264_HIGH_MICROFIX_DONE_FRESH_HIGH0_MED7_BACKLOG_PACKET_STOP_ACTIVE_FALSE`
작성: ANU 직접 (2026-07-03 KST). **packet only — thread resolve 0 · merge 0 · 코드 추가수정 0.** 근거: GPT 판정(HIGH 1건 same-PR microfix 승인 → 새 head fresh Gemini → MED만 남으면 backlog/evidence-resolve packet 제출 → 조건 충족 시 merge packet, merge 실행 별도 승인).

## 1. HIGH microfix 집행 결과 (완료)
- 테스트 파일 1개만 수정: `_WS`/`_MAIN_WS` 하드코딩 절대경로(dev1 worktree·canonical) → `REPO_ROOT = Path(__file__).resolve().parents[2]` 동적 계산.
- 검증: `/home/jay/workspace` grep **0** · 신규 회귀 **10/10 PASS** · P1 회귀 **36 passed** · canonical 2파일 **39636/43653B(truncate 재발 0)** · PR diff 여전히 **expected_files 3개** · 실제 수정 **테스트 파일 1개뿐**.
- 커밋/푸시: 새 head **425d9582**.

## 2. Fresh Gemini (head 425d9582, 10:04:15Z)
- **HIGH 0 / CRITICAL 0.** 이전 HIGH(09:32 하드코딩)는 microfix로 **outdated = resolved-by-code**.
- unresolved = 8 (outdated HIGH 1 [resolved-by-code] + **MED 7**).
- **CI**: 새 head에서 재실행 중(pending) — green 미확정.

## 3. MED 7건 분류 (전부 non-blocking robustness/style — correctness/security 아님)
| # | 파일 | 내용 | 판정 |
|---|---|---|---|
| 1 | test | `_find_func_line_range` brace 카운팅(주석/문자열 내 `{}` 취약) | test helper robustness backlog |
| 2 | finish-task.sh | `ls`로 파일 존재 확인(subprocess) | shell robustness backlog |
| 3 | finish-task.sh | `ls` 안티패턴(신규, #2와 동류) | shell robustness backlog |
| 4 | finish-task.sh | 인라인 python `2>/dev/null`이 stderr 침묵 | shell observability backlog |
| 5 | terminal_state_callback.py | try/except 내 `Path` → NameError 우려 | **오탐**: `from pathlib import Path` line 21 존재 → NameError 불가 |
| 6 | terminal_state_callback.py | 마커 경로 `Path` → NameError 우려 | **오탐**: 동일(Path import됨) |
| 7 | test | 함수선언 감지 `startswith(f"{func_name}()")` 공백 취약 | test helper robustness backlog |

## 4. 제안 (승인 필요 — 현재 미실행)
- **evidence-resolve 대상**:
  - outdated HIGH(09:32, 하드코딩) = resolved-by-code(microfix 425d9582·grep 0·10/10) → resolve.
  - MED #5/#6 = 오탐(Path line 21 import) → evidence-resolve(non-issue).
  - MED #1/#7 = test helper robustness → non-blocking backlog `PR264_TEST_HELPER_BRACE_PARSER_ROBUSTNESS_BACKLOG_ACTIVE_FALSE`.
  - MED #2/#3/#4 = finish-task.sh production shell robustness → **HIGH microfix 범위 밖**, non-blocking backlog `PR264_FINISH_TASK_NULLGLOB_ROBUSTNESS_BACKLOG_ACTIVE_FALSE`(+stderr silence 항목).
- **종료선**: HIGH0=merge / MEDIUM 완벽주의 루프 금지. MED는 코드로 안 쫓고 backlog+evidence-resolve로 unresolved 0 도달.
- **순서**: (승인 시) 8 thread evidence-resolve → unresolved 0 → CI green 확인 → merge packet 제출(merge 실행 별도 승인).

## 5. STOP / 금지 (현 단계)
- thread resolve 0 · merge 0 · 코드 추가수정 0 · finish-task.sh/terminal_state_callback.py 추가수정 0(MED 코드 추격 금지) · ruleset/admin 0.
- 신규 HIGH/CRITICAL 재발 시 즉시 STOP_REPORT.
- ACTIVE=false · CALLBACK_DELIVERED 표현 금지(최대 OWNER_PICKUP_REQUIRED/DELIVERY_UNVERIFIED) 유지.
