Phase 4 본판 — 날짜 기한 폐기 + 산출물 트리거제 전환
작성: 박세린 PM PD 발주: 2026-09-28 직접 지시 (안건 3) — PD가 (C)를 직접 선택. 이 문서의 §1 결정 선언은 잠금이다. 정정 (2026-09-28, 같은 날): §2 T2 기준값 오류 정정. 원 브리핑 수치(권1 62+권2 20=82)는 검수서/브리프 파일까지 포함된 값이었음 — 메인 세션 확인. §3 명령 자체(chapter_??.md필터)는 정정 전부터 정확했음. 실측 재실행 결과로 §2/§3/PD 요약 수치만 교체. 트리거 임계값(30편/100화/14일/1커밋)·게이트 AND 구조·§6 부결 조건은 변경 없음. 선행 문서:sprints/roadmap_v4_0_2026-09-06.md§4-2 (옵션 A/B/C 원문, 박세린 권고 (C)) /sprints/roadmap_v3_0_closure_2026-09-27.md(v3.0 종료 처리, F6 재평가 보류 항목) 프로토콜: Q→O→D→Dr→A. §1은 PD 확정 사안(잠금). §2~§6의 임계값·판정 방식은 박세린 설계 영역(PD 재검토 가능, 잠금 아님). 범위: 본 파일 1개만 신설/수정.roadmap_v4_0_2026-09-06.md/roadmap_v3_0_closure_2026-09-27.md수정 0. 중복 서술 대신 참조만.
§1 결정 선언 (PD 확정, 2026-09-28)
Phase 4 본판(Unity 6 전투 포팅, 원 계획 2027-04 → v4.0 §4-2 재검토 시점 2026-10-01)의 착수 조건에서 날짜 기한을 제거한다.
- 2026-10-01(D-3) 기한은 본 문서로 소멸한다. 그 날짜가 지나도 "지연"이 아니다 — 애초에 게이트가 날짜가 아니므로 지연이라는 개념 자체가 성립하지 않는다.
- 대체 게이트: §2의 트리거 4건 전부 충족 시 Phase 4 착수를 PD에게 상정한다. 트리거는 자동 실행이 아니라 "PD 재검토 상정" 조건이다 — 트리거 충족 = 착수 확정이 아니라 착수 여부를 다시 옵션으로 제시하는 시점.
- 근거:
roadmap_v3_0_closure_2026-09-27.md§3 실증 — v3.0의 날짜 기반 게이트(Sp-W01~08 고정 캘린더)가 붕괴 원인이었고, v4.0의 "2트랙 상한" 설계조차 날짜(재개 후 16일)만 지나면 PD 호출 없이 다시 무너졌다. 날짜는 이 프로젝트에서 신호가 아니라 소음이다. 산출물만 신호다.
§2 트리거 정의 (4건 — 전부 충족 시 Phase 4 착수 상정)
T1. 그림책 산출물 볼륨
| 항목 | 값 |
|---|---|
| ① 측정 대상 | web/public/picture-book/ 하위 편(chapter) 폴더 수 |
| ② 임계값 | ≥ 30편 |
| ③ 측정 방법 | (Get-ChildItem "D:\SVN\Backup\GodBlade\web\public\picture-book" -Directory).Count |
| ④ 현재값 / 근거 | 현재 16편(프롤로그+ch01~15) = 53.3%. +14편 필요. 30이라는 값은 신규 산출이 아니라 roadmap_v4_0_2026-09-06.md §4-2 원안에서 박세린이 이미 예시로 제시한 수치를 그대로 채택 — 이전 권고와의 정합성 유지. 16→30은 거의 2배(+87.5%) 증산인데, 이는 "재개했다"가 아니라 "9/8~9/23 16일 공백을 극복하고 재발 없이 지속 생산했다"는 실증에 필요한 최소 배수로 잡았다. 절반 이하 증가로는 단발성 몰아치기와 구분이 안 된다. |
T2. 웹소설 산출물 볼륨
| 항목 | 값 |
|---|---|
| ① 측정 대상 | 권1+권2 확정 화수(chapter_NN.md, _review/_draft/_brief 등 부속 파일 제외) |
| ② 임계값 | ≥ 100화 |
| ③ 측정 방법 | (Get-ChildItem "D:\SVN\Backup\GodBlade\designs\webnovel\volume_1","D:\SVN\Backup\GodBlade\designs\webnovel\volume_2" -Filter "chapter_??.md").Count |
| ④ 현재값 / 근거 | 실측(§3 명령 재실행, 2026-09-28 정정): volume_1 = 61 / volume_2 = 18(01~16, 41, 49) → 합계 79화. 원 브리핑 82화는 검수서·브리프 파일까지 포함된 오류값이었음(정정 이력 참조). 9/28 chapter_15_draft.md → chapter_15.md 개명으로 필터가 79를 직접 반환한다(한시 운용하던 +1 상수 폐기, 아래 [해소됨] 참조). 100화까지 +21화 필요. 100이라는 값 자체의 근거는 원안 그대로: 권2가 완결 규모에 도달하고 권3이 착수되는 자연 경계와 근사시켜 서사적 마일스톤과 산출물 마일스톤을 일치, 판정 모호성 제거. |
[해소됨 — 2026-09-28] chapter_15_draft.md 영구 미집계 함정: 15화 본문이 _draft 접미사 탓에 필터(chapter_??.md)에 영원히 안 걸리던 문제(16화는 정상 집계되어 15화만 빠지는 비대칭). 한시적으로 "+1 고정 가산" 상수를 뒀으나, PD가 15화를 사이트에 노출하기로 결정하면서 chapter_15.md 로 개명했다. 위 문서에 명시한 제거 조건(개명 시 이중 집계 방지)에 따라 +1 상수는 폐기했고, §3 명령이 79를 직접 반환한다. 개명 잔여 영향: chapter_16_review.md §3 과 chapter_16_17_brief.md 가 옛 파일명을 참조 중이나 판정에는 무관(둘 다 부속 문서).
T3. 최근성(갭 재발 감시) — "지금 이 순간 갭이 진행 중이 아님"
| 항목 | 값 |
|---|---|
| ① 측정 대상 | ACTIVE 2트랙(그림책+웹소설) 파일의 최종 수정일과 오늘(판정일) 사이 경과일 |
| ② 임계값 | ≤ 14일 |
| ③ 측정 방법 | Get-ChildItem "D:\SVN\Backup\GodBlade\designs\webnovel","D:\SVN\Backup\GodBlade\web\public\picture-book" -Recurse -File | Sort-Object LastWriteTime -Descending | Select-Object -First 1 LastWriteTime → 오늘 날짜와 차이 계산 |
| ④ 현재값 / 근거 | 실측 갭 두 번(64일 project_gap_64days_roadmap_v4_2026-09-06.md, 16일 §3 roadmap_v3_0_closure_2026-09-27.md)의 최소값이 16일이었다. 14일은 그보다 낮은 안전마진 — 과거 최단 갭이 "위험"으로 확정되기 전(16일째) 이틀 앞선 14일째에 이미 걸러내기 위함. T1·T2가 누적치라 "예전에 몰아 했었다"를 걸러내지 못하므로, T3는 반드시 판정 당일 기준으로 재확인해야 한다 — T1·T2가 충족돼도 T3가 깨지면(예: 30편 도달 후 15일간 무활동) Phase 4 상정을 보류한다. |
T4. 정현우(Unity) 재개 신호
| 항목 | 값 |
|---|---|
| ① 측정 대상 | jjpark38/godblade-unity6 리포 신규 커밋 수 (2026-09-28, 514파일 커밋 시점 이후) |
| ② 임계값 | ≥ 1건 |
| ③ 측정 방법 | 정현우 담당 리포에서 git log --since="2026-09-28" --oneline | Measure-Object -Line (코드 작성 여부는 무관 — 커밋 존재 자체만 확인) |
| ④ 현재값 / 근거 | 현재 0건(9/28 이전 방치 4.5개월분 정리 커밋 1회가 전부, 그 이후 신규 0). 0→1은 "방치 재발 여부"의 최소 판별 단위 — 코드량·품질은 안 본다. Phase 4 = Unity 본판이므로 코드 담당자의 최소 재개 의사 없이 T1·T2·T3만으로 착수 상정하는 것은 무의미(사람이 없는데 코드 트랙을 연다). |
게이트 = T1 AND T2 AND T3 AND T4. 넷 중 하나라도 미충족이면 Phase 4는 상정하지 않는다.
§3 판정 절차 — PD 세션 오픈 1분 체크리스트
PD가 세션을 열면, 조사 없이 아래 4줄만 실행/확인한다. 넷 다 초록이면 그 세션에서 박세린에게 "Phase 4 게이트 재검토" 발주.
[ ] T1 그림책 폴더 수 ≥ 30 → (Get-ChildItem web\public\picture-book -Directory).Count
[ ] T2 웹소설 확정 화수 ≥ 100 → (Get-ChildItem designs\webnovel\volume_1,volume_2 -Filter "chapter_??.md").Count
[ ] T3 최근 수정일 경과 ≤ 14일 → 위 두 경로 최신 LastWriteTime - 오늘
[ ] T4 Unity6 리포 9/28 이후 커밋 ≥ 1 → git log --since=2026-09-28 --oneline (라인 수)
넷 다 통과가 아니면 판정 종료 — 어느 항목이 미달인지 숫자만 박세린 1줄 보고에 기록하고 다음 세션으로 넘긴다. 조사·추정 금지, 위 4개 명령의 출력 숫자만 본다.
독립 점검 — Unity 6.7 LTS 확인 (2026-09-30 PD "확인 예약" 승인)
위 T1~T4 AND 게이트와 무관하다. 별개 항목이며, 이게 미달이어도 Phase 4 판정에 영향 없다.
[ ] 2026-12-31 도래 시 — Unity 6.7 LTS 정식 출시 여부 확인
→ 출시 확인 → U1 옵션 (c) 6.7 LTS 직행 채택 여부 PD 재상정
→ 미출시 → U1 옵션 (b) 6.3 LTS fallback 즉시 실행 여부 PD 재상정
확인처: https://unity.com/releases/unity-6/support 또는 https://endoflife.date/unity
왜 여기만 날짜를 쓰는가: 이건 우리 착수·완료를 날짜에 묶는 게 아니라 제3자(Unity사) 사실이 발생했는지 확인하는 관찰일이다. PD 51 원칙이 금지하는 것은 전자이고, 외부 사실 확인 일정은 해당하지 않는다.
왜 예약해 두는가: 정현우 경고(designs/unity_version_strategy_2026-09-30.md R-U6-2) — "이 트리거가 유일한 안전장치이며, 아무도 확인하지 않으면 동결이 무기한 방치로 퇴화한다." 우리 현행 버전 6000.4.3f1(6.4)은 2026-06-17 이미 EOL 이라 무지원 상태가 길어질수록 위험이 커진다. U1 은 아직 미결정이며, 이 예약은 결정이 아니라 점검이다.
§4 FREEZE 해제 연동 — 웹게임(차도윤) · FlatBuffer(정현우)
2단계로 분리한다. 두 트랙 모두 roadmap_v3_0_closure_2026-09-27.md F1/F5에서 "Unity 재개와 함께 재평가" 조건이 이미 걸려 있었다 — 본 문서는 그 조건을 T4로 구체화한 것.
| 단계 | 조건 | 해제 범위 | 담당 |
|---|---|---|---|
| Stage 1 (부분 해제) | T4만 충족 (T1~T3 무관) | FlatBuffer 설계 재검토 세션 1회(2h, 코드 착수 아님 — project_flatbuffer_self_build_decision_2026-05-04.md PoC 계획이 4.5개월 경과했으므로 유효성만 재확인) | 정현우 단독 |
| Stage 2 (전면 해제) | T1+T2+T3+T4 전부 (Phase 4 게이트와 동일 시점) | 웹게임(차도윤) FREEZE 해제 + FlatBuffer 실제 구현 착수 + Phase 4 본판 착수, 3건 동시 상정 | 차도윤 + 정현우 |
웹게임은 Stage 1 단독 해제 대상이 아니다 — 200F 4.255 baseline을 웹으로 임베드하는 작업(FlatBuffer 의존)이라 콘텐츠 볼륨(T1/T2)과 갭 재발 감시(T3)까지 다 확인된 뒤에만 재개하는 것이 roadmap_v4_0_2026-09-06.md §2 원칙1(2트랙 상한)과 정합.
§5 Tier 14 A안 — UGC 모더 D+120(2026-09-15) 경과분
판단 보류. 날짜 재설정 안 함.
- D+120(9/15)은 이미 13일 경과(오늘 9/28)했지만, 재평가하지 않는다.
- 사유:
project_tier_limit_2026-05-04.mdA안의 D+120 UGC 모더 채용은 UGC 기능 자체가 라이브 상태임을 전제로 설계됐다. 그런데roadmap_v3_0_closure_2026-09-27.mdF3(김민준 Supabase 댓글/spoiler_level 필터/시리즈 페이지)가 FREEZE 상태 — UGC 기능 자체가 없다. 채용 전제가 소멸했으므로 "연기냐 채용이냐"를 물을 대상이 없다. - Tier 14 한계 자체도 현재 Active 인원(2트랙, 실질 3~4명)이 상한에서 한참 아래라 충돌 상황이 재현되지 않는다.
- 재평가 트리거(산출물 기준): F3(김민준 UGC 기능)이 FREEZE 해제되는 시점 — 즉 김민준 담당 신규 커밋/기능 배포가 1건이라도 발생하는 시점에, 그 발주와 동시에 Tier 14/UGC 모더 재평가를 박세린이 자동으로 끼워 넣는다. 독립된 날짜를 다시 박지 않는다 — F3 재개 자체가 트리거다.
§6 부결 조건 — Phase 4 자체 재검토/폐기 (산출물 기준, 날짜 아님)
트리거가 "영영 안 찬다"는 것도 날짜로 재지 않는다. §3 체크리스트를 시도한 세션들의 순증가로 잰다.
| 관측 | 판정 |
|---|---|
| §3 체크리스트를 연속 2회 세션에서 실행했는데, 두 세션 사이 T1(그림책 편수)과 T2(웹소설 화수)가 둘 다 순증가 0 | Phase 4 (C) 트리거제를 roadmap_v4_0_2026-09-06.md §4-2 (B) 수준(2027-01 명시 연기)으로 격하 논의를 박세린이 PD에 상정 |
| 위 정체가 연속 3회로 이어짐(즉 T1·T2가 3세션 연속 순증가 0) | Phase 4 본판 자체의 재검토/폐기 논의를 상정 — Unity 코드가 4.5개월+α 이상 완전 방치되는 조건과 겹치면(§2 T4도 함께 0 유지) 이 시점엔 project_combat_porting_a_plus_2027_04.md(180h 추정)의 전제 자체를 다시 물어야 함 |
| T1·T2 중 한쪽만 정체, 다른 한쪽은 진행 | 부결 아님 — 정체된 트랙만 §2 임계값 사유 재검토(예: 그림책 30편 목표가 과도했는지) |
이 표는 "몇 번 실패하면 포기"가 아니라 "몇 번을 재서 정체가 실측으로 확인되면"만 작동한다 — 세션이 열리지 않아서 판정 자체가 없었던 기간(과거 64일/16일형 공백)은 정체 카운트에 넣지 않는다. 판정을 시도했는데 숫자가 안 늘어난 경우만 센다.
PD 1쪽 요약
- 결정: Phase 4 본판 2026-10-01 날짜 기한 소멸. 산출물 트리거 4건 전부 충족 시에만 재검토 상정 (2026-09-28 PD 확정, 이후 트리거 설계는 박세린 자율 영역).
- 트리거 4건 / 현재 달성률 (2026-09-28 정정 반영):
- T1 그림책 ≥30편 — 현재 16편 (53.3%)
- T2 웹소설 ≥100화 — 현재 79화 (79.0%) — 82화→79화로 정정(원 브리핑이 검수서/브리프를 오포함). 9/28
chapter_15.md개명으로 필터가 79를 직접 반환, +1 상수 폐기 - T3 최근성 ≤14일 경과 — 오늘 기준 산출(9/27~28) 있음, 통과
- T4 정현우 신규 커밋 ≥1건(9/28 이후) — 현재 0건
- 종합: 4건 중 1건(T3)만 통과, 3건 미달 — 게이트 미충족 (정정 전과 결론 동일)
- 판정 절차: PD 세션 오픈 시 §3 4줄 명령만 실행(T2는 결과값+1), 넷 다 초록이면 그 세션에서 Phase 4 재검토 상정.
- FREEZE 해제: T4 단독 충족 시 FlatBuffer 설계 재검토(정현우, 2h)만 부분 해제. 웹게임(차도윤) + FlatBuffer 실구현은 T1~T4 전부 충족 시에만 동시 해제.
- Tier 14 UGC 모더 D+120(경과): 재평가 안 함 — 전제(UGC 기능 F3)가 FREEZE라 판단 대상 자체가 소멸. F3 재개 시점에 자동 결합.
- 부결 조건: 날짜 아님. §3 체크리스트 연속 2회 세션에서 T1·T2 둘 다 순증가 0 → (C)를 (B) 격하 논의 상정. 3회 연속이면 Phase 4 자체 재검토/폐기 논의 상정.