Sprint 01 (2026-05-04 ~ 2026-05-18)
기간: 2026-05-04 (Mon 00:00) ~ 2026-05-18 (Mon 00:00) (14일, Monday↔Monday 경계 —sprints/README.md§1) 킥오프 일자: D+0 = 2026-05-04 (Mon) · D-2 확정본 갱신: 2026-05-02 (Sat) Phase 2 두 번째 스프린트 — Sprint 00 Unity 6 셋업 + 초월모드 Smoke Test 통과 위에서 보상·프레스티지 설계 정합성 검증 → Importer 파이프라인 구축. 소유자:project-manager. 실행:code-lead(W2 중심) ·game-designer(W1 통합 검증). 결정: PD. D-2 갱신 변경 사항 (2026-04-21 사전 드라이런 스케치 → 2026-05-02 확정): - W1·W2 의도 재배치 (PD 지시 2026-05-02): W1 = 무한던전 보상 + 프레스티지 통합 설계 검증 / W2 = Importer 3종 + 런타임 Lookup 구현 - W1 D-1 체크리스트(2026-05-03) + W2 TodoWrite preload 15건을 본 문서로 흡수 (별도 보조 파일은 W1·W2 종료 시sprints/archive/이동 예약) - 회귀 가드 6건(R-DR-01~03 + Sp00 회귀 A/B) 인라인 편입
0. 선행 자산 (PD 승인 완료, 2026-05-04 PD가 추가로 손댈 필요 없음)
기획 (designs/ 하위)
transcendent_reward_draft.mdv1.0 APPROVED (2026-04-21) — Q1=C안 / Q2=하이브리드 / Q3=6등급 / Q4=미도입 / Q5=Sprint 05+ 유예transcendent_drop_table.tsv(60행 = 5 버킷 × 2 mobKind × 6 grade) +transcendent_drop_table_README.mdv1.0transcendent_milestone_reward.tsv(22행, 14행TBD_*placeholder)transcendent_affix_pool.tsv/affix_pool.tsv(뼈대 6행 + Sp04 본 풀 35어픽스 별도)prestige_system_spec.mdv1.0 (3탭×10항목 = 30 prestige item)prestige_items.tsv/prestige_pp_cost.tsv/prestige_effect_matrix.tsv
기술 설계 (designs/)
sprint-01-w2-importer-design.mdv1.0 APPROVED (2026-04-21)- DQ1=옵션 A(개별 SO 3개) / DQ2=메뉴 4+1 / DQ3=
TsvReaderSprint 02 이월 / DQ4=GodBlade.Tests.Editor신설 - §9 컴파일러 시뮬레이션 체크리스트 11개 (CP9-1 ~ CP9-11)
Sprint 00 재활용 자산 (절대 수정 금지 — Sp00 회귀 재발 차단)
Unity6/Packages/manifest.json— URP 17.0.3 / Addressables 2.2.2 / Input System 1.11.2 /test-framework 1.4.5Unity6/Assets/_Project/Scripts/Data/TranscendentStageSO.cs—[assembly: InternalsVisibleTo("GodBlade.Editor")]단일 선언 위치Unity6/Assets/Editor/Importers/TranscendentStageImporter.cs— TSV 파서·BOM trim·Addressables 등록 패턴 (복제 참조)- 3 asmdef:
GodBlade.Data/GodBlade.Runtime/GodBlade.EditorTools
1. 이월 후보 (Sprint 00 종료 회고에서 확정)
- (Sp00 D+1 조기 수렴, D+14 회고 시점 예상 0건. 2026-05-04 오전 회고에서 재확인 후 채움)
- 2026-05-04 D+0 확인 결과: 이월 0건 확정. W1 1일 조기 종료(4.3h/4.75h, -9%) — 5/5~5/10 6일 버퍼.
2. 목표 (3건)
- W1 통합 설계 검증 — 무한던전 보상 + 프레스티지 (5/4~5/10)
설계 문서 5종(transcendent_reward_draft + prestige_system_spec + 4 TSV)의 수치 정합성·교차 영향을 1주 안에 game-designer 주도로 통합 검증, 이슈 발견분은 W2 Importer 착수 전까지 PD 승인하 수정 완료.
- W2 TSV 3종 Import 파이프라인 + 런타임 Lookup E2E (5/11~5/17)
드롭/마일스톤/어픽스 TSV → SO 3개 생성 + Addressables 등록 + Edit 모드 테스트 5~8개 Green.
- 테스트 인프라 신설 —
GodBlade.Tests.Editorasmdef + 첫 Test Runner Green (Sp00 회귀 A/B 패턴 재발 0).
3. 작업 (TodoWrite 초기 리스트)
형식:- [ ] <내용> (담당: ..., 예상 ?h, 의존: #N)CP 태그 =sprint-01-w2-importer-design.md체크포인트 가드 태그 = R-DR-01~03 + Sp00 회귀 A/B 인라인 가드
W1 (5/4~5/10) — 통합 설계 검증 + D-1 게이트
- #W1-01 D-1 점검 PASS 수신 + 킥오프 GO 판정 — 2026-05-03(일) PD 직접 실행분(
sprint-01-d-minus-1-checklist.md§7.2) 결과 수신. PASS면 GO, FAIL이면 HOLD + 일정 조정 옵션 PD 보고. (담당: project-manager, 0.25h, 의존: 없음) ✅ 2026-05-04 D+0: GO (Yellow-Green 유지) — §7.2 5/5 PASS, 자동화분 §7.1 drift 4건 정정 완료 - #W1-02 보상 설계 5종 정합성 1차 검증 —
transcendent_reward_draft.md5대 결정 vs 3 TSV(드롭/마일스톤/어픽스) 수치 일치 확인. 각 TSV 행수 60/22/6 육안 확인 + 등급 리매핑(원본Rare→ 신규Epic) TSV 적용 여부. 발견 이슈는 game-designer로 회수. (담당: game-designer, 1.5h, 의존: #W1-01) ✅ 2026-05-04: 5/5 정합 + 행수 60·22·6 일치 + 등급 리매핑 100% / 이슈 3건 AAC 처리 (실측 1.2h/1.5h) - #W1-03 프레스티지 설계 vs 보상 교차 영향 검증 —
prestige_system_spec.md30항목 ×transcendent_milestone_reward.tsv22행 충돌 여부. 100층 해금·소프트캡 Lv5·시즌 50% 전환(승인 메모리 기준)이 마일스톤 14행TBD_*와 충돌 없는지 표 1장. (담당: game-designer, 1.5h, 의존: #W1-02) ✅ 2026-05-04: 3/3 정합 + 22행 매핑(영향14·비영향8) + 충돌 2건 CB 처리 + I-3 README:132 패치 grep 실측 (실측 1.6h) - #W1-04 200F 역산 회귀 검증 1회 — Sp02 W1 200F 역산(메모리
project_sprint02_w1_prestige_items.md) 통과 수치를 W1 시점에 재현 (DropRate × Affix 4.21배 + Calculator 시그니처 불변). 어긋나면 W2 Import 차단 + PD 에스컬레이션. (담당: game-designer, 1.0h, 의존: #W1-03) ✅ 2026-05-04: PASS 4.255 vs 4.26 = 0.12% 편차(마진 90%) + 시그니처 불변 + C-2 PP-only 잠금 영향 Δ=0% (실측 1.0h) - #W1-05 W1 통합 검증 결과 1쪽 보고서 + W2 GO/HOLD 판정 — 위 3건 결과를 1쪽으로 정리, PM·PD에게 W2 착수 GO/HOLD 회신. HOLD면 W2 첫 1~2일 설계 수정 보장. (담당: game-designer, 0.5h, 의존: #W1-04) ✅ 2026-05-04: W2 GO 권고 + 메모리 3건 신설(
project_sprint01_w1_results/project_milestone_bonus_pct_pp_only_lock/project_idle_cap_combination_sp03_pending) + MEMORY.md:33-35 인덱스 3줄 + 메인 세션 grep 백체크 4건 PASS (실측 0.5h)
W2 (5/11~5/17) — Importer 3개 + 런타임 Lookup + 테스트
TodoWrite 등록 시점: W1 #W1-05 GO 판정 직후 (예상 5/10 일요일 저녁 또는 5/11 월요일 오전) 경로 상수 (D-1 §2.2 정정 반영): -../designs/transcendent_drop_table.tsv-../designs/transcendent_milestone_reward.tsv-../designs/affix_pool.tsv(혹은transcendent_affix_pool.tsv— #W2-04 시작 시 game-designer 재확인)
- #W2-01
Grade/MobKind/RewardTypeenum +GradeRemap.cs—Assets/_Project/Scripts/Data/GradeRemap.cs생성. 6등급 enum +TryParseNew+TryFromLegacy+UnknownGradeException. CP1 커버. InternalsVisibleTo 부착 금지 (public enum). (담당: code-lead, 1.0h, 의존: #W1-05 GO) - #가드-CS0579-1 — #W2-01 저장 직후
[assembly: InternalsVisibleTo그렙 히트 1건(TranscendentStageSO.cs:22) 유지 확인 (R-DR-01) - #커밋-1
feat(sp01-w2): add Grade/MobKind/RewardType enums + GradeRemap static class - #W2-02
DropRateTableSO+ 60행 Import —Assets/_Project/Scripts/Data/DropRateTableSO.cs(List<DropRateRow> +[NonSerialized] Dictionarylazy build).Assets/Editor/Importers/DropRateTableImporter.cs. 메뉴GodBlade/Data/Import Drop Rate Table TSV→DropRateTable.asset생성 + Addressables 주소Rewards/DropRateTable등록 + 10 버킷×mob 합 1.000±0.001 로그 OK. CP2. (담당: code-lead, 2.0h, 의존: #W2-01) - #가드-CS0579-2 — #W2-02 SO 저장 직후 그렙 재확인 (R-DR-01 재발 Medium)
- #가드-경로-1 — #W2-02 첫 Import 실행 시
EditorUtility.DisplayDialog("TSV Not Found")팝업 발생 0 (R-DR-02) - #커밋-2
feat(sp01-w2): add DropRateTableSO + importer (60 rows) - #W2-03
MilestoneRewardCatalogSO+ 22행 Import —MilestoneRewardCatalogSO.cs(List<MilestoneRewardRow> +_milestoneFloorsHashSet).MilestoneRewardImporter.cs.TBD_*prefix row의IsPlaceholder=true로그 14건 Warn 출력. CP4. (담당: code-lead, 1.5h, 의존: #W2-01) - #가드-CS0579-3 — #W2-03 SO 저장 직후 그렙 재확인 (피로도 축적 Medium)
- #커밋-3
feat(sp01-w2): add MilestoneRewardCatalogSO + importer (22 rows) - #W2-04
AffixPoolSO+ 6행 Import (뼈대만) —AffixPoolSO.cs(List<AffixSkeletonRow> + 빈 List<AffixValueEntry>).AffixPoolImporter.cs. W2 일탈 금지 — 스택 로직 / BuildSummary / OptionItemRandom 211행 주입 모두 Sp02·Sp04 이월. CP5/CP6. (담당: code-lead, 1.0h, 의존: #W2-01) - #가드-CS0579-4 — #W2-04 SO 저장 직후 그렙 재확인 (3회 연속 Sp00 회귀 B 동일 패턴 ⚠)
- #W2-05
GodBlade/Data/Import ALL메뉴 —Assets/Editor/Importers/RewardImportAll.cs. Sp00 Stage(불변 호출) → Drop → Milestone → Affix 순차. Sp00TranscendentStageImporter본체 수정 금지. (담당: code-lead, 0.5h, 의존: #W2-02·#W2-03·#W2-04) - #가드-네임스페이스 — #W2-05 저장 직후 Editor 측 Importer 4개 모두
namespace GodBlade.EditorTools명시 확인 (R-DR-03 rootNamespace 비신뢰) - #커밋-4
feat(sp01-w2): add AffixPoolSO skeleton + Import ALL menu - #W2-06
GodBlade.Tests.Editor.asmdef신설 —Assets/_Project/Tests/Editor/GodBlade.Tests.Editor.asmdef. references =UnityEngine.TestRunner/UnityEditor.TestRunner/GodBlade.Data/GodBlade.Runtime/GodBlade.EditorTools/Unity.ResourceManager.defineConstraints: ["UNITY_INCLUDE_TESTS"]. Test Runner 인식 확인. CP9-1. (담당: code-lead, 0.5h, 의존: #W2-01) - #W2-07
DropRateTableSO.GetDropRate(floor, mob, grade)+FloorToBucket— Runtime 어셈블리 호출 가능. miss → 0.0 + LogWarning 1회. CP2/CP3. (담당: code-lead, 1.0h, 의존: #W2-02) - #W2-08
MilestoneGranter+OnFloorReached채널 스텁 —Assets/_Project/Scripts/Runtime/Rewards/MilestoneGranter.cs,namespace GodBlade.Runtime.Rewards.Award(int floor)→IReadOnlyList<GrantResult>. Drop과 이벤트 채널 분리 (CP7). CP9-5 (네임스페이스 충돌) 확인. (담당: code-lead, 1.0h, 의존: #W2-03) - #W2-09 테스트 5~8개 Green —
DropRateTableLookupTests.cs— floor 경계값 8개 TestCase (30/31, 80/81, 130/131, 180/181) +DropRate_SumIsOnePerBucket_PerMobKindGradeRemapTests.cs—RareLegacy_MapsToEpic_NotRare★ +UnknownLiteral_ThrowsMilestoneCatalogTests.cs—TbdPrefix_IsPlaceholderTrue+Floor200_HasExpectedRows- 최소 5개 Green. CP3 보강. (담당: code-lead, 1.5h, 의존: #W2-06·#W2-07·#W2-08)
- #W2-10 §9 11체크 통과 + 4 커밋 머지 — CP9-1~CP9-11 수동 체크 + Console 새 에러 0 확인 → 로컬 git push. Sp00 회귀 2건(CS0246/CS1061) 재발 0. 1~2h 패치 버퍼 포함 (메모리
feedback_codelead_review_compile_verify.md). (담당: code-lead, 1.0h, 의존: #W2-01~#W2-09 전체)
정비 (PM)
- #PM-01 D+7 중간 점검 — 2026-05-11(월) 오전. W1 GO/HOLD 판정 + W2 첫날 블로커 스캔. 블로커 없고 GO면 W2 TodoWrite 정식 등록. (담당: project-manager, 0.25h)
- #PM-02 D+14 종료 회고 + Sprint 02 킥오프 착수 — 2026-05-18(월) 오전. 본 문서 종료 섹션 작성 +
sprint-02.md킥오프 (W1=프레스티지 PP 적립 / W2=TsvReader공통화 +OptionItemRandom211행 주입 + Magic 베이스 Normal 복제). (담당: project-manager, 0.75h, 의존: #W2-10)
총 작업 수: 22건 (W1 5건 · W2 작업 10건 + 가드 6건 + 커밋 4건 = 20건 / W2 합산 표기 시 회귀가드/커밋 분해 · PM 정비 2건) 총 예상 공수: W1 4.75h + W2 10.0h + PM 1.0h = 15.75h (중앙값)
- 하한 14h · 상한 18h. 주 10~15h × 2주 = 20~30h 상한 내 여유.
- W2 1주에 10h 집중 — Sp00 D+1 조기 수렴 선례 대비 약간 빡빡. R3 참조.
- 상한 초과 시 #W2-09 테스트 5개 최저선으로 축소 + #W2-08 Granter 빈 리스트 스텁 이월 (PD 승인 후).
4. 의존성
선행 완료 (2026-05-04 시점)
- TSV 4종 (drop / milestone / affix / README) —
designs/확정 - 기술 설계
sprint-01-w2-importer-design.mdv1.0 APPROVED - Unity 6 프로젝트 + URP + Addressables +
test-framework 1.4.5(Unity6/Packages/manifest.json) - 3 asmdef (
GodBlade.Data/GodBlade.Runtime/GodBlade.EditorTools) 컴파일 통과 - D-1 자동화분 4 drift 정정 완료 (2026-05-01) —
sprint-01-d-minus-1-checklist.md§7.1
본 스프린트 내 순차 그래프
#W1-01 GO 판정 ─ #W1-02 ─ #W1-03 ─ #W1-04 ─ #W1-05 GO
│
┌──────┘
▼
#W2-01 (Grade/Remap) ─┬─ #W2-02 (Drop) ─┬─ #W2-05 (Import ALL)
├─ #W2-03 (Milestone)─┤
├─ #W2-04 (Affix 뼈대)┘
├─ #W2-06 (Tests asmdef) ─┐
├─ #W2-07 (Lookup API) ├─ #W2-09 (테스트 Green) ─ #W2-10 (§9 + 머지)
└─ #W2-08 (Granter 스텁) ┘ │
└─ #PM-02
블로커 후보 (Sp00 회귀 A/B + R-DR-01~03 인라인)
- B1 —
InternalsVisibleTo중복 CS0579 (R-DR-01, Sp00 회귀 B 재현 가능): 신규 SO 3개에 중복 부착 시 즉시 재현.TranscendentStageSO.cs단일 선언 유지. #W2-02/-03/-04 저장 직후 그렙 가드 4회 강제 편입. - B2 — TSV 경로 drift (R-DR-02): D-1 자동화분에서
transcendent_milestone_reward.tsv파일명 정정 1건 발견. #W2-02/-03/-04 첫 Import 실행 시 'TSV Not Found' 팝업 0 가드. 발생 시 즉시 STOP, 경로 상수 재확인. - B3 —
Tests.Editorasmdef references 누락 CS0246 (Sp00 회귀 A 정확 재현):Unity.ResourceManager누락 시AsyncOperationHandle<T>사용한 테스트가 컴파일 실패. #W2-06 생성 시 references 6개 완결성 재확인 — 최우선 가드. - B4 (W1 신규) — W1 통합 검증에서 설계 충돌 발견 시: #W1-02/-03/-04 중 1건이라도 PD 결정 필요한 충돌 발견 시 W2 착수 지연. game-designer는 발견 24h 내 PD 에스컬레이션 (메모리 IP 본문 우선 원칙
feedback_ip_sourcing_priority.md참조).
Sprint 02 이월 원칙 (본 스프린트에선 절대 건드리지 않음)
TsvReader공통 추출 (DQ3 / R-W2-2) — Sp00TranscendentStageImporter재수정 금지OptionItemRandom211행 실수치 주입- Magic 베이스 Normal 복제
- XML 파서 /
LootRoller/AffixRoller/ Addressables Play-mode 로드 테스트 - 프레스티지 PP 적립 훅 (
prestige_system_spec.mdSp02 W1)
5. 리스크 (정확히 3건)
- R1 — W2 1주에 코드 작업 10h 집중 (W1·W2 의도 재배치 부작용)
- D-2 갱신에서 W1을 통합 검증 전용으로 빼면서 모든 코드 작업이 W2(5/11~5/17)에 몰림. 주 10~15h 가용 가정 시 빠듯하지 않으나 본업 가중·NUnit 학습 곡선 발생 시 임계.
- 대응: W1 종료 시점(5/10 일요일 저녁) PM이 W2 5일치 일자별 분배 시뮬레이션 1회. 5/15(목)까지 #W2-05 ALL 메뉴 미도달 시 #W2-09 테스트 5개 최저선 + #W2-08 빈 리스트 스텁 이월. 범위 변경은 PD 승인 후.
- R2 — Sp00 회귀 A/B 동일 조합 재현 가능 (CS0246·CS0579)
- 본 스프린트 #W2-06 asmdef + #W2-01 enum 위치 + #W2-02/-03/-04 신규 SO 3개의
InternalsVisibleTo중복은 Sp00 회귀 A·B 정확 재현 조합. 정적 리뷰 통과해도 실컴파일 실패 가능. - 대응: 가드 6건(CS0579 4회 + 경로 1회 + 네임스페이스 1회) 인라인 편입. #W2-10 패치 버퍼 1~2h. §9 11체크 PR 머지 전 수동 수행. Unity 에디터 연 상태 저장→Console 새 에러 0 확인 후 커밋. (메모리
feedback_codelead_review_compile_verify.md)
- R3 — W1 통합 검증에서 설계 충돌 발견 시 W2 착수 지연
- 기존
transcendent_reward_draftv1.0 +prestige_system_specv1.0 모두 PD 승인되었으나 D-2 시점 통합 교차 검증은 처음. 200F 역산(#W1-04) 또는 마일스톤 14TBD_*× 프레스티지 30항목 충돌 가능성 미평가. - 대응: #W1-05 GO/HOLD 판정 mandatory. HOLD면 W2 첫 1~2일을 설계 수정에 할애 + 코드 작업 5/13(수) 착수. PD에게 GO/HOLD 회신 1쪽 보고서 의무. 충돌 발견 시 IP 본문 우선 원칙(메모리
feedback_ip_sourcing_priority.md) 적용.
6. 종료 섹션 (D+14 = 2026-05-18 Mon 00:00 채움)
완료
- (D+14에 작성)
미완 / 이월
- (D+14에 작성 — 이월은
sprint-02.md상단 "이월 후보" 블록에 원문 +[from Sprint 01]태그)
회고
- 잘된 것:
- 안된 것:
- 다음 액션:
D+14 체크리스트 (2026-05-18 Mon)
- W1 통합 검증 1쪽 보고서(
#W1-05산출물) 보존 + 핵심 결정 메모리화 DropRateTable.asset/MilestoneRewardCatalog.asset/AffixPool.asset3개 Inspector 행수(60/22/6) 육안 확인- Addressables 주소 3개(
Rewards/DropRateTable/Rewards/MilestoneRewardCatalog/Rewards/AffixPool) 그룹Rewards등록 확인 - Test Runner에서
GodBlade.Tests.Editor인식 + 최소 5개 Green - 드롭률 합 자기검증 로그(10 버킷×mob) 1.000±0.001 통과 콘솔 캡처
- §9 체크리스트 11개 code-lead 자체 서명 (PR 설명 또는 주석)
- 회귀 가드 6건 모두 PASS 기록
sprint-02.md킥오프 문서 착수 — W1 프레스티지 PP / W2TsvReader공통화 + 211행 주입 + Magic 복제- D-1 보조 파일 2건(
sprint-01-d-minus-1-checklist.md/sprint-01-w1-todowrite-preload.md) →sprints/archive/이동
7. 이벤트 로그 요청 블록
[PD 요청] 2026-05-18 종료 시점에 아래 1줄을CLAUDE.md"이벤트 로그" 섹션에 추가:- 2026-05-18: Sprint 01 완료. W1 보상+프레스티지 통합 검증 / W2 Transcendent 드롭·마일스톤·어픽스 SO 3종 + Lookup 런타임 + GodBlade.Tests.Editor 신설.(미완 발생 시 PM이 D+14 회고 후 실제 완료분에 맞춰 초안 문구 수정 제시 — 파일 수정은 PD가 직접)
8. 부록 — 커밋 메시지 템플릿 (W2 4건)
커밋#1: feat(sp01-w2): add Grade/MobKind/RewardType enums + GradeRemap static class
- Data asmdef 에 public enum 3종
- GradeRemap.TryParseNew 원본 → 신규 매핑 (Rare→Epic 포함)
커밋#2: feat(sp01-w2): add DropRateTableSO + importer (60 rows)
- Addressables 주소 'Rewards/DropRateTable' 등록
- 드롭률 합 1.000 ± 0.001 자기검증 통과
- CS0579 회귀 가드 grep 1회 확인
커밋#3: feat(sp01-w2): add MilestoneRewardCatalogSO + importer (22 rows)
- Addressables 주소 'Rewards/MilestoneRewardCatalog' 등록
- HashSet<int> _milestoneFloors 22 elements 확인
커밋#4: feat(sp01-w2): add AffixPoolSO skeleton + Import ALL menu
- AffixPoolSO 뼈대 (W2 범위, 스택 로직 Sp04 이월)
- GodBlade/Data/Import ALL 메뉴 1개 (Stage + DropRate + Milestone + AffixPool 순차)