# task-2686+1 — SESSION_PROPAGATION_CONFLICT_RESOLVE_PR_CREATE (★ 회장 verbatim 2026-05-26 Option B 발사 승인)

- Level: Lv.3 (★ conflict resolve + 재적용 + regression 재실행 + PR 생성 / live infra 변경 0)
- 담당: **dev8 라** (★ task-2686 worktree context 보유 · 회장 verbatim 명시)
- 제외: dev2 오딘 (★ task-2688 X1 R7) / dev3 다그다 (★ task-2689 watcher) / dev4/dev5 (self-key 사고)
- chair_authorization_id: **`CHAIR-AUTH-CALLBACK-SESSION-PROPAGATION-WIRING-CONFLICT-RESOLVE-20260526-JJONGS-001`**
- 완료 상태: **`TASK_2686_SESSION_PROPAGATION_CONFLICT_RESOLVED_PR_CREATED`**

## 배경

task-2686 (CALLBACK_SESSION_PROPAGATION_WIRING_FIX) worktree 구현 완료 후 PR 생성 시 `scripts/finish-task.sh` 충돌 발생:
- task-2686 worktree (branch `task/task-2686-dev8` HEAD `b2fac85e`) 가 old main 기준에서 작업
- 그동안 main 에 PR #150 (`319170b9`) 머지 완료 — 동일 `scripts/finish-task.sh` 수정 포함
- worktree_manager.py finish 의 main 최신화 자동 단계에서 conflict → PR 생성 실패

회장 verbatim 2026-05-26 결정: Option B (★ ANU 수동 병합 위험 + C 의 BEHIND PR 회피 → 별도 task conflict resolve dispatch).

## 회장 verbatim 목표

★ **fresh origin/main `319170b9` 기준으로 task-2686 변경을 재적용하고, 충돌을 해결한 뒤 PR 생성 가능한 상태로 만든다.**

## 회장 verbatim 허용 8

1. fresh origin/main `319170b9` 기준 별도 worktree 생성
2. task-2686 commit `b2fac85e` 내용 확인
3. task-2686 expected_files 내부 변경만 재적용
4. `scripts/finish-task.sh` 충돌 해결 (★ 핵심)
5. `dispatch/__init__.py`, `dispatch/normal_fallback_callback_helper.py`, `dispatch/prompt.py`, `schemas/anu_normal_callback_envelope_v1.json`, `tests/regression/callback_session_propagation/*` 범위 확인
6. regression 재실행 (★ 신규 34 + 기존 callback 회귀 86 + R21~R24 26 모두)
7. PR 생성 (★ worktree_manager.py finish 또는 동등 경로)
8. PR body 에 충돌 원인, resolved files, regression, forbidden_action_count 명시

## 회장 verbatim 금지 12

1. PR #149 코드와 혼합 0
2. PR #151 코드와 혼합 0
3. PR #151 merge 0
4. PR #151 branch sync 0
5. auto-merge 0
6. live settings.json 변경 0
7. hooks live 변경 0
8. Axis runtime 변경 0
9. HARNESS_ENFORCED 전체 선언 0
10. policy 승격 0
11. BLOCK 확대 0
12. expected_files 밖 수정 0

## 단일 source 참조 (read-only)

- task-2686 commit: `b2fac85e [task-2686] callback session propagation wiring fix (회장 verbatim 7항목 1:1)`
- task-2686 worktree: `/home/jay/workspace/.worktrees/task-2686-dev8`
- task-2686 단일 spec: `memory/specs/system_callback_session_routing_modular_wiring_gap_analysis_260526.md`
- task-2686 doctrine: `memory/feedback_callback_session_continuity_doctrine_260526.md`
- task-2686 ACCEPTED marker: `memory/events/callback-session-continuity-doctrine-accepted-260526.json`
- fresh origin/main HEAD: `319170b95b1330c3e9554eca88973e68f60e93e9` (★ preflight 4-step 의무)

## conflict resolve 권고 (★ 봇이 결정)

`scripts/finish-task.sh`:
- PR #150 main 변경: PR watcher terminal/callback fix (★ T2626_ANU_KEY normal_fallback_callback_helper 호출 결선)
- task-2686 변경: ANU_CHAIR_FACING_SID env var propagation 추가 (★ helper 호출 시 --chair-facing-sid argv 전달)
- 통합 방향: PR #150 변경 base 유지 + task-2686 의 ANU_CHAIR_FACING_SID propagation 라인 추가 (★ surgical 통합 · 다른 영역 건드리지 말 것)

## allowed_resources

```yaml
allowed_resources:
  paths:
    - "dispatch/__init__.py"
    - "dispatch/normal_fallback_callback_helper.py"
    - "dispatch/prompt.py"
    - "scripts/finish-task.sh (★ conflict resolve 핵심 · PR #150 변경 base + task-2686 변경 통합)"
    - "schemas/anu_normal_callback_envelope_v1.json"
    - "tests/regression/callback_session_propagation/**"
    - "memory/events/task-2686+1.*"
    - "memory/reports/task-2686+1.md"
    - "memory/tasks/task-2686+1.md"
    - "INDEX.md"
  forbidden_paths:
    - "/home/jay/.claude/**"
    - "/usr/local/bin/cokacdir"
    - ".github/**"
    - "**/.env*"
    - "**/credentials*"
    - "settings.json"
    - "hooks/**"
    - "dispatch.py (★ root 파일)"
    - "Axis/**"
    - "utils/anu_codex_micro_refinement_loop.py (★ PR #149 영역)"
    - "tests/anu_codex_micro_refinement_loop/** (★ PR #149 영역)"
    - "utils/callback_authority_4source_validator.py (★ PR #151 영역)"
    - "utils/anu_callback_registrar.py (★ PR #151 영역)"
    - "utils/callback_collector_helper_integration.py (★ PR #151 영역)"
    - "utils/pr_watcher_terminal_state_classifier.py (★ PR #150 머지 영역 · 수정 0)"
  commands:
    - "git log / git diff / git show / git add / git commit / git push / git worktree"
    - "git checkout / git cherry-pick / git rebase (★ task-2686 commit 재적용)"
    - "python3 -m pytest"
    - "python3 -c"
    - "python3 -m json.tool"
    - "gh pr view / gh api / gh pr create"
    - "ls / cat / wc / grep / find / tail / head / printf / sha256sum"
    - "cokacdir --currenttime"
    - "cokacdir --cron-history"
  merge_policy: "conflict_resolve_pr_create_no_merge_no_auto"
  ttl_hours: 12
```

## 완료 7 보고 필드

1. fresh main `319170b9` preflight 4-step 통과 evidence (★ git fetch + ls-remote + rev-parse + gh api)
2. conflict resolve diff (★ scripts/finish-task.sh 어떻게 통합했는지)
3. expected_files 내부 변경 재적용 evidence (★ 6 파일 diff stat)
4. regression 재실행 통과 count (★ 신규 34 + 기존 callback 86 + 0 회귀)
5. PR 번호 + URL (★ gh pr view)
6. forbidden_action_count 0 + 충돌 원인 명세 (★ PR body 인용)
7. CI 11 / gemini-review-gate / phase3-merge-gate 초기 상태 (★ PR 생성 직후 snapshot)

## expected_files (~7)

- `scripts/finish-task.sh` (★ 충돌 resolved)
- `dispatch/__init__.py` (★ 재적용)
- `dispatch/normal_fallback_callback_helper.py` (★ 재적용)
- `dispatch/prompt.py` (★ 재적용)
- `schemas/anu_normal_callback_envelope_v1.json` (★ 재적용)
- `tests/regression/callback_session_propagation/*` (★ 재적용 6 file)
- `memory/events/task-2686+1.conflict-resolve-pr-created-260526.json`
- `memory/events/task-2686+1.done`
- `memory/reports/task-2686+1.md`

## ANU normal callback (★ self-key 금지 + session propagation 적용)

- envelope: `memory/events/anu_callback/task-2686+1-normal-completion.json`
- owner key: ANU `c119085addb0f8b7` (★ self-key 금지)
- **★ cokacdir --cron --session `53e89540-5bed-4692-a726-ed857820758a` 강제** (★ chair-facing session resume)
- envelope ≤ 3900 bytes
- absolute fire timestamp: now+30s
- envelope 3 field: chair_facing_session_id / collector_session_id / delivery_session_id
- 보고 envelope 에 new_pr_number + pr_url + conflict_resolve_files 포함

## frozen anchors

- ANCHOR-1: "fresh origin/main 319170b9 기준 재적용 (★ preflight 4-step 의무)"
- ANCHOR-2: "scripts/finish-task.sh 충돌 resolve = PR #150 base + task-2686 propagation 라인 surgical 통합"
- ANCHOR-3: "expected_files 밖 수정 0"
- ANCHOR-4: "PR #149 / PR #151 / PR #150 영역 코드 혼합 0"
- ANCHOR-5: "live infra 변경 0 · merge 0 · auto-merge 0"

## 종결

성공: **`TASK_2686_SESSION_PROPAGATION_CONFLICT_RESOLVED_PR_CREATED`**

끝