# [InsuRo] task-2938 엔진 — 전송 전용(push + PR 생성만)

## ★★★ 최상위 제약 (위반 시 폐기)
**이 태스크는 "전송 전용"이다. 검증 완료된 엔진 코드를 절대 수정하지 않는다.**
파일 수정 / 테스트 실행 / 포맷 / 리베이스 / 커밋 추가 전부 금지. 오직 push + PR 생성만.

## allowed_resources
```yaml
allowed_resources:
  paths: []          # 파일 수정 없음(전송 전용)
  forbidden_paths:
    - "server/policy_grouping/**"
    - "server/tests/test_policy_grouping_*"
    - "supabase/migrations/*coverage_grouping_knowledge.sql"
    - ".env"
    - ".env.*"
  commands:
    - "git status"
    - "git rev-parse"
    - "git log"
    - "git push"
    - "gh pr create"
    - "gh pr view"
  merge_policy: "none"   # 봇은 머지하지 않음. 머지는 ANU.
  ttl_hours: 6
```

## 대상
- worktree: `/home/jay/projects/InsuRo/.worktrees/task-2938-dev1`
- 브랜치: `task/task-2938-dev1`
- **고정 HEAD: `795c190`** (엔진 최종 커밋. 이 해시가 아니면 즉시 중단·보고)
- 원격 상태(Codex 확인): `origin/task/task-2938-dev1` **이미 존재**(2f787ff), 로컬이 그 위 **ahead 9**. 즉 "최초 push"가 아니라 **기존 브랜치 업데이트 push**.
- base(원격 main): `2f787ff`

## 실행 순서 (정확히 이대로)
1. `cd /home/jay/projects/InsuRo/.worktrees/task-2938-dev1`
2. **시작 가드**: `git rev-parse HEAD` == `795c190` 확인. 아니면 **중단**하고 보고(무결성 위반 가능).
3. `git status --short` 가 **비어있음(clean)** 확인. 더럽면 **중단**·보고(엔진 수정 금지 원칙).
4. `git push origin task/task-2938-dev1` (기존 원격 브랜치를 795c190으로 업데이트. force 금지 — fast-forward만. non-ff면 중단·보고)
5. **전송 후 가드**: `git ls-remote origin task/task-2938-dev1` 의 해시 == `795c190` 확인.
6. PR 생성: `gh pr create --base main --head task/task-2938-dev1 --title "[task-2938] 증권분석 담보 grouping 엔진(정독+판별축+학습형 HITL)" --body <아래 PR 본문>`
   - PR 생성이 권한/인증으로 실패하면 **push는 성공했음을 명시**하고 실패 사유 그대로 보고(둘은 별개 체크포인트).
7. CI가 걸리면 **직접 기다리지 말 것**(ANU 정책). PR 번호·head sha만 보고하고 종료.

## PR 본문 (요지)
```
## 개요
증권분석/신규설계 공통 담보 grouping 엔진. 약관(특약) 단위 조항 정독 → 판별축 추출 → taxonomy 매핑 → 학습형 human-in-the-loop.

## 구성
- server/policy_grouping/ : axes(판별축6) / taxonomy(16그룹) / clause_splitter(회사별 담보분할) / reading(아누 무학습 정독) / mapper(결정순서10) / hitl(학습 4단계) / knowledge(지식DB) / pipeline / cli / prompts
- supabase 마이그레이션: coverage_product / coverage_clause / coverage_group_map / grouping_rule (4테이블, RLS read-only)

## 검증 (ANU 독립검증 완료)
- 유닛/골든셋 68 테스트 PASS
- 실 PDF e2e: 삼성 302담보 / 메리츠 201담보(1단코드 159 포함) 분할 — task-2937 recall 34.8% 실패 원인 해소
- 실 아누 정독 3건: 암진단비→진단비 자동, 표적항암→세분형치료비 자동, 신재진단암→confidence 0.6<0.75 HITL 질문 분기(추측 금지대로 작동)

## 미포함(후속)
- 보장분석 output(증권 vision 추출 + 강연우 양식 표), 신규설계 비교, 라우트 배선. 이 PR은 엔진 코어만.
```

## 완료 보고 (봇 → .done + 보고서)
- 시작 HEAD 해시 / clean 여부 / push 결과(ff 여부) / 전송 후 원격 해시 / PR 번호·URL·head sha / (PR 실패 시)사유
- **엔진 파일 0개 수정** 확인 문구 필수
- callback envelope: task_id·pr_number·head_sha=795c190·branch·collector=ANU (UTF-8 ≤3900 bytes)