# task-2571+2 Plan — Option D minimal 2-line fix (attempt-3)

**status**: in-progress (구현/회귀 완료, PR 머지 대기)
**level**: 2 (critical 우선순위)
**owner**: dev4 비슈누
**attempt**: 3 (회장 명시 hard limit override, 자동 attempt-4 금지)
**created_at**: 2026-05-14
**deadline**: TTL 8h (worktree base = origin/main @ 06494794)

## 목표 (Scope)

PR #124에서 Gemini가 새로 발견한 valid HIGH 1건 + MEDIUM 1건을
**최소 2-line fix**로 해결하는 replacement PR을 생성하고 머지한다.

1. `scripts/finish-task.sh:1166` — `[ -x "$WORKSPACE/scripts/stash_audit.py" ]` → `[ -f ... ]`
2. `scripts/finish-task.sh:1175` 영역 heredoc — `|| echo "[WARN] ... (non-fatal)"` →
   `|| { echo "[ERROR] stash-lifecycle dispatch failed (fatal)" >&2; exit 1; }`

## 범위 (Approved Files — 3개)

- `scripts/finish-task.sh` (2-line fix만)
- `tests/regression/test_stash_lifecycle_fail_stop_bash.py` (신규 회귀 1개)
- `memory/reports/task-2571+2.md` (보고서)

PR #124 기존 8 파일 변경은 **계승만 함, 재수정 금지**.

## 비목표 (Out-of-scope)

- PR #124의 original HIGH/MEDIUM fix 재수정
- magic-number / timezone / TASK_ID 기존 해결 항목 재수정
- Gemini 지적 2건 외 리팩터링
- 다른 `-x` check (line 42, 1145)도 동일 결함이지만 **Gemini 신규 finding 아니므로 변경 금지** (스코프 엄수)

## 머지 전략

- worktree path: `.worktrees/task-2571+2-dev4`
- branch: `task/task-2571+2-dev4` (PR #124 HEAD에서 분기, PR #124 scope 계승)
- pr_base: `origin/main`
- merge_policy: tiered
- self-hosted CI SUCCESS + Gemini fresh review on HEAD + unresolved 0 + CLEAN + BOT squash merge

## D-doctrine 강제

- D-1: same-PR push after Gemini 금지 → 본 PR에서 Gemini valid finding 재발 시 즉시 Critical 7 보고, 자동 attempt-4 금지
- D-3: attempt-N hard limit (3) — 본 task가 마지막 자동 시도
- D-5: guard #7 BYPASS 금지, fresh origin/main base

## 완료 조건

1. fresh worktree 사용 확인
2. 2-line fix 적용 (line 1166 -f / line 1175 fatal exit)
3. PR #124 기존 회귀 46개 + 신규 1개 GREEN
4. Codex G1 PASS / Sanitize gate PASS
5. self-hosted CI SUCCESS + Gemini fresh + unresolved 0 + BOT squash merge
6. 보존 PR #123/#124 marker 시도 (실패 시 보고서 박제)

## 다음 단계

본 task 완료 후:
- task-2574 v2.1 closeout: PR #123/#124 close/delete 결정
- attempt-3에서도 valid HIGH/MEDIUM 재발 시 자동 attempt-4 금지 → 회장 결정 대기
