# task-2487+1 — task-2487 회귀 픽스 + verifier SSOT 확장 (새 dev2 세션)

- 작업 유형: **회귀 픽스 + verifier 계층 SSOT adoption**
- 작업 레벨: **Lv.3** (코드 변경 + 회귀 테스트 + 신규 PR + verifier 계층 audit)
- 담당: **dev2-team (오딘 — 단, 새 세션 필수, 기존 stuck 세션 재사용 금지)**
- 우선순위: **★ critical** — 2순위 (task-2485+1 본질 PASS 확정 후 발행)
- Track: **internal_doc / regression_fix**
- 일시: 2026-05-08
- 선행: task-2485+1 본질 PASS 종결 ✅ (PR #47 머지 완료, mergeCommit be8dcd21)

## ⚠️ 본 task의 본질 — 회장 명시

> task-2487 PR #49/#50/#51에서 확인된 회귀(legacy task ID dot-phase 호환 깨짐)를 수정하고, task_id parser SSOT 적용 범위를 **verifier 계층까지 확장**한다. 기존 PR evidence는 보존하고, 새 정상 PR 경로로 제출한다. **기존 오딘 stuck 세션 재사용 금지 — 반드시 새 dev2 세션으로 시작**.

## 분류 컨텍스트

- 선행 task-2485+1 분류: ESSENCE_PASS / ESCALATED_VERIFIER_LIMITATION (browser_verify TASK_ID_PATTERN `+` 미지원 자기참조 결함)
- 선행 task-2487 분류: REVIEW_OR_APPROVAL_PENDING_WITH_REGRESSION (PR #49/#50/#51 unresolved high 8건 — dot-phase 회귀)
- 본 task: 두 incident 동시 해소 (verifier SSOT 위임 + dot-phase 호환 복원)

## 회장 명시 필수 범위 10건

### 1. browser_verify.py TASK_ID_PATTERN 제거 또는 SSOT 위임
- 대상: `teams/dev1/qc/verifiers/browser_verify.py:11`
- 현재: `TASK_ID_PATTERN = re.compile(r'^task-\d[\w.\-]*$')` — `+` 미지원 + SSOT import 부재
- 조치: `from utils.task_id_parser import is_valid_task_id` 또는 동등 SSOT 함수 import 후 자체 regex 제거

### 2. task_id 내 + suffix 허용
- task-N+M 형식 (retry suffix) 모든 verifier에서 허용
- task-N.M dot-phase 형식 (legacy) 호환 유지

### 3. verifier 계층 전수검색
- `teams/*/qc/verifiers/*.py` 전수 audit
- 자체 regex 보유 verifier 식별 + SSOT 위임 변환

### 4. 중복 regex 제거
- verifier 계층 + dispatch + scripts + dashboard + report_parser 전반에서 중복 task_id regex 식별
- utils/task_id_parser.py 단일 SSOT로 일원화
- task-2487 PR #49/#50/#51 Gemini high 8건 회귀 모두 동일 SSOT 위임으로 해소

### 5. utils/task_id_parser.py를 단일 진실 공급원으로 사용
- 모든 task_id parsing/validation은 SSOT 함수 호출
- 자체 regex 신규 추가 금지

### 6. PR #49/#50/#51 회귀 evidence 재현
- Gemini가 지적한 dot-phase 회귀 케이스를 회귀 테스트로 명시 재현
- 예: `task-9.1`, `task-648.1.dev1.done`, `task-N.M.devX.done`, `task-N+M`, `task-N.M`, `task-N+M.done` 모두 PASS

### 7. 수정 후 회귀 테스트 추가
- `tests/regression/test_task_id_parser_v3.py` 또는 SSOT 회귀 테스트 보강
- 모든 verifier가 SSOT 호출 통합 테스트

### 8. task-2485+1에서 발생한 browser_verify ESCALATE 재현/해소 검증
- task_id `task-2485+1` 자체로 browser_verify 재호출 → reject 0건 확인
- task_id `task-2487+1`도 동일 검증

### 9. 기존 PR evidence는 삭제하지 않고 보존
- PR #49 / PR #50 / PR #51 close/delete 금지
- unresolved review thread 17건 회귀 evidence로 그대로 보존
- 기존 PR에 force push 금지

### 10. 새 PR은 기존 evidence PR을 강제 수정하지 않고 별도 정상 경로로 제출
- 새 브랜치 생성 (예: `task/task-2487+1-dev2`)
- 새 PR 발행 (예: `[task-2487+1] task-2487 회귀 픽스 + verifier SSOT 확장`)
- 기존 PR #49/#50/#51는 그대로 두고, 새 PR에서 회귀 픽스만 진행

## allowed_resources

```yaml
allowed_resources:
  read_only_paths:
    - "memory/tasks/task-2487*"
    - "memory/tasks/task-2485*"
    - "memory/events/task-2485*"
    - "memory/events/task-2487*"
    - "memory/events/task-2495*"
    - "memory/feedback/feedback_escalated_verifier_limitation_classification_260508.md"
    - "memory/orchestration/phase_b_integration_items_260507.md"
    - "memory/reports/task-2485+1.md"
    - "utils/task_id_parser.py"  # SSOT (이미 main 반영, 변경 금지)
    - ".env.keys"
  paths:
    - "memory/tasks/task-2487+1*"
    - "memory/reports/task-2487+1*"
    - "memory/events/task-2487+1*"
    - "memory/plans/tasks/task-2487+1/**"
  workflow_paths:
    # verifier 계층 SSOT 위임 (회장 명시 1번 항목)
    - "teams/dev1/qc/verifiers/*.py"
    - "teams/dev2/qc/verifiers/*.py"
    - "teams/dev3/qc/verifiers/*.py"
    - "teams/dev4/qc/verifiers/*.py"
    - "teams/dev5/qc/verifiers/*.py"
    - "teams/dev6/qc/verifiers/*.py"
    - "teams/dev7/qc/verifiers/*.py"
    - "teams/dev8/qc/verifiers/*.py"
    - "teams/shared/**/*.py"
    # 회귀 테스트 (회장 명시 7번 항목)
    - "tests/regression/test_task_id_parser*"
    - "tests/regression/test_verifier_ssot*"
    # task-2487 PR #49/#50/#51 회귀 영역 — 단, 새 PR로만 제출 (회장 명시 9~10)
    - "dispatch/__init__.py"
    - "scripts/auto_merge.py"
    - "scripts/done-watcher.py"
    - "scripts/notify-completion.py"
    - "scripts/pattern-detector.py"
    - "scripts/report_utils.py"
    - "scripts/start_task_guard.py"
    - "scripts/token-tracker.py"
    - "dashboard/helpers.py"
    - "report_parser.py"
  forbidden_paths:
    - ".secrets/**"
    - ".github/workflows/**"
    - "memory/events/task-2483*"
    - "memory/events/task-2484*"
    - "memory/events/task-2486*"
    - "memory/events/task-2472*"
    - "memory/events/task-2493*"
    # task-2485+1 재오픈 금지 (회장 명시)
    - "memory/events/task-2485+1*"  # read만 허용 (read_only_paths에 포함)
  forbidden_actions:
    - admin_override
    - required_ci_bypass
    - manual_done_creation
    - existing_pr_force_push  # PR #49/#50/#51 force push 금지
    - existing_pr_close_or_delete  # PR #49/#50/#51 close/delete 금지
    - unresolved_thread_simple_resolve  # 단순 resolve 금지, 실제 회귀 픽스로 해소
    - odin_session_reuse  # 기존 stuck 오딘 세션 재사용 금지 (새 세션 필수)
    - task_2485+1_reopen
    - audit_jsonl_real_write
    - token_value_logging
    - new_local_regex  # 자체 regex 신규 추가 금지 (회장 명시 5번)
```

## 회장 명시 금지 8건

- ❌ PR #49/#50/#51 삭제 금지
- ❌ 기존 evidence PR 강제 머지 금지
- ❌ unresolved thread 무시 금지
- ❌ admin override 금지
- ❌ CI bypass 금지
- ❌ manual .done 금지
- ❌ 오딘 세션 재시작 금지 (반드시 새 세션)
- ❌ task-2485+1 재오픈 금지

## 회장 명시 완료 조건 7건

1. ✅ SSOT parser가 verifier 계층에 적용됨 (전수 audit + 위임 완료)
2. ✅ task-2485+1, task-2487+1 모두 verifier에서 거부되지 않음 (`+` suffix 허용)
3. ✅ browser_verify ESCALATE 원인 해소 (재현 → 해소 검증)
4. ✅ 회귀 테스트 PASS (`task-N.M`, `task-N+M`, `task-N.M.devX.done` 계열)
5. ✅ CI PASS (11/11 SUCCESS 또는 등가)
6. ✅ fresh evidence 확보 (Gemini fresh review SHA 일치)
7. ✅ 새 PR 생성 + 머지 가능 상태 도달 후 보고

## 시스템 3문서 참조

- 시스템 청사진: `/home/jay/.claude/projects/-home-jay--cokacdir-workspace-autoset/memory/system_bot_orchestration_blueprint_260506.md`
- 분류 룰 (신설): `memory/feedback/feedback_escalated_verifier_limitation_classification_260508.md`
- 선행 evidence: `memory/events/task-2485+1.essence-pass-escalated-verifier-limitation`
- task-2487 회귀 evidence: `memory/events/task-2487.review-or-approval-pending`
- task-2495 분리 spec (참조용, 본 task와 혼합 금지): `memory/events/task-2495-candidate.pr42-recovery-analysis-spec`
- Phase B 통합 항목 §9.5/§9.6: `memory/orchestration/phase_b_integration_items_260507.md`

## 보고

- SCQA 4섹션
- 회장 명시 필수 범위 10건 각 결과 (PASS / FAIL / N/A)
- 회장 명시 금지 8건 위반 0건 명시
- 회장 명시 완료 조건 7건 충족 보고
- 새 PR 번호 + headRefName + CI 상태 명시
- 회귀 테스트 케이스 목록 + PASS 결과
- verifier 계층 audit 결과 (자체 regex 보유 verifier 목록 + SSOT 위임 처리 결과)
- 헤르메스/아누 통합 요약 경유, 회장 직접 장문 보고 X

## 후행 (자동 트리거 X — 회장 승인 후)

- task-2487+1 새 PR 머지 완료 → PR #49/#50/#51 close 검토 (회장 결정)
- task-2495 (PR #42 분석) 별도 발행 검토 (회장 결정)
- backlog 재산정 (browser_verify SSOT gap 등 4건 자연 해소 여부)