From de6200e7be9696ed6a2e846e18c49df68cac6270 Mon Sep 17 00:00:00 2001 From: g1nation Date: Thu, 23 Apr 2026 17:16:52 +0900 Subject: [PATCH 1/5] docs: add skybound v13.1 update and engine stabilization notes --- ...1 - 시스템 안정화 및 전술적 경계 고도화.md | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 Skybound v13.1 - 시스템 안정화 및 전술적 경계 고도화.md diff --git a/Skybound v13.1 - 시스템 안정화 및 전술적 경계 고도화.md b/Skybound v13.1 - 시스템 안정화 및 전술적 경계 고도화.md new file mode 100644 index 00000000..75ffb139 --- /dev/null +++ b/Skybound v13.1 - 시스템 안정화 및 전술적 경계 고도화.md @@ -0,0 +1,43 @@ +# 🛡️ Skybound Protocol: 시스템 안정화 및 전술적 경계 고도화 (v13.1) + +📌 **Brief Summary** +Skybound 엔진의 초기 구동 안정성을 확보하고, 게임의 정체성을 '전통적 슈팅'에서 '전략 생존 슈터'로 강화하기 위해 핵심 시스템을 재설계한 대규모 업데이트입니다. + +--- + +📖 **Core Content** + +## 1. 엔진 구동 안정화 (Engine Stability) +게임 시작 시 발생하는 상태 데드락과 무한 레벨업 모달 루프를 해결했습니다. + +* **시간 기반 가드 (Time-based Guards):** `StageDirectorSystem`에서 초기화 시점의 급격한 이벤트 발동을 방지하기 위해 15초/30초의 최소 동작 가드를 도입했습니다. +* **이벤트 중복 발동 방지:** `processedEventSeconds` 셋을 활용하여 동일 시간대의 이벤트가 중복 트리거되지 않도록 락(Lock) 메커니즘을 강화했습니다. + +## 2. 상태 동기화의 단일 진실 원천 (Single Source of Truth) +엔진 내부 로직과 UI(Zustand) 간의 레벨 정보 불일치를 제거했습니다. + +* **Zustand 중심 설계:** `ProgressionSystem`에서 엔진이 직접 레벨을 올리던 중복 로직을 제거하고, 모든 성장은 Zustand 스토어를 통해서만 이루어지도록 강제했습니다. +* **UI 피드백 분리:** `LevelUpModal`에 `isChest` 플래그를 추가하여 일반 레벨업과 긴급 보급품(Emergency Supply Drop) 보상을 시각적으로 명확히 분리했습니다. + +## 3. 전술적 경계 가드 (Tactical Boundary Clamping) +적기가 화면 밖으로 이탈하여 플레이어의 대응 권한을 박탈하는 문제를 해결했습니다. + +* **물리적 클램핑:** `CombatSystem`에서 적기의 이동 허용 범위를 화면 하단 `height - 40`으로 제한했습니다. +* **전략적 전환:** 적은 피해야 할 장애물이 아닌, 반드시 격파해야 할 '전술적 목표'로 재정의되었습니다. + +## 4. 고도화된 AI 이동 패턴 +화면 경계 내에서 유기적으로 움직이는 새로운 이동 로직을 도입했습니다. + +| 패턴명 | 상세 설명 | 시각적 흐름 | +| :--- | :--- | :--- | +| **Ping-pong Zigzag** | 화면 경계 충돌 시 반대 방향으로 반전하여 화면 내 상주 시간을 극대화함. | `Left -> Right (Collision) -> Left` | +| **Recursive Striker** | 하단 돌격 후 소멸하지 않고 다시 상단으로 복귀하여 순찰 모드로 전환됨. | `Top -> Bottom (Dive) -> Top (Return)` | +| **Chase Guard** | 플레이어를 추격하는 동안에도 화면 경계를 넘지 않도록 위치 보정 로직이 상시 작동함. | `Player Tracking + Clamp` | + +--- + +🔗 **Knowledge Connections** + +- **Related Topics:** [[Skybound Protocol 시스템 아키텍처 및 데이터 흐름 분석]], [[Skybound Protocol 데이터 및 제어 흐름 (Control Flow)]] +- **Issue Log:** `Issue_2026-04-23_Engine_Stabilization_and_Tactical_Boundary.md` +- **Keywords:** `State Synchronization`, `Boundary Clamping`, `Tactical Shooter`, `Zustand SSOT` From 8325760eadec1c6f354adbac52672205cc00b51f Mon Sep 17 00:00:00 2001 From: yesung Date: Thu, 23 Apr 2026 19:25:56 +0900 Subject: [PATCH 2/5] docs: update Skybound knowledge hub and stability reports --- 00_Raw/Boss_Battle_Design_System.md | 113 ----------- 10_Wiki/2nd/.obsidian/app.json | 1 - 10_Wiki/2nd/.obsidian/appearance.json | 1 - 10_Wiki/2nd/.obsidian/core-plugins.json | 33 ---- 10_Wiki/2nd/.obsidian/graph.json | 22 --- 10_Wiki/2nd/.obsidian/workspace.json | 186 ------------------ 10_Wiki/2nd/2026-04-20.md | 0 10_Wiki/2nd/무제.base | 3 - 10_Wiki/2nd/무제.canvas | 1 - 10_Wiki/2nd/환영합니다!.md | 5 - ...ombat_System_Reference_Error_Resolution.md | 28 +++ .../Skybound_Implementation_Report_V10_5.md | 37 ++++ .../Boss_Battle_Design_System.md | 66 +++++++ .../Boss_Combat_Stability_Fix_Log.md | 33 ++++ .../UX_Gameplay_Protocol_V10_0.md | 35 ++++ ...04-21_Stability_and_Optimization_Report.md | 32 +++ .../Topics/Skybound/Skybound-Knowledge-Hub.md | 6 + 17 files changed, 237 insertions(+), 365 deletions(-) delete mode 100644 00_Raw/Boss_Battle_Design_System.md delete mode 100644 10_Wiki/2nd/.obsidian/app.json delete mode 100644 10_Wiki/2nd/.obsidian/appearance.json delete mode 100644 10_Wiki/2nd/.obsidian/core-plugins.json delete mode 100644 10_Wiki/2nd/.obsidian/graph.json delete mode 100644 10_Wiki/2nd/.obsidian/workspace.json delete mode 100644 10_Wiki/2nd/2026-04-20.md delete mode 100644 10_Wiki/2nd/무제.base delete mode 100644 10_Wiki/2nd/무제.canvas delete mode 100644 10_Wiki/2nd/환영합니다!.md create mode 100644 10_Wiki/Topics/Skybound/01_Core_Engine/Combat_System_Reference_Error_Resolution.md create mode 100644 10_Wiki/Topics/Skybound/01_Core_Engine/Skybound_Implementation_Report_V10_5.md create mode 100644 10_Wiki/Topics/Skybound/03_Boss_Systems/Boss_Battle_Design_System.md create mode 100644 10_Wiki/Topics/Skybound/03_Boss_Systems/Boss_Combat_Stability_Fix_Log.md create mode 100644 10_Wiki/Topics/Skybound/04_Mechanics_Progression/UX_Gameplay_Protocol_V10_0.md create mode 100644 10_Wiki/Topics/Skybound/05_Project_Issues/2026-04-21_Stability_and_Optimization_Report.md diff --git a/00_Raw/Boss_Battle_Design_System.md b/00_Raw/Boss_Battle_Design_System.md deleted file mode 100644 index d10395c5..00000000 --- a/00_Raw/Boss_Battle_Design_System.md +++ /dev/null @@ -1,113 +0,0 @@ -# 🛡️ Skybound: Boss Battle System & Damage Architecture - -이 문서는 Skybound 프로젝트의 보스전 메커니즘과 데미지 계산 체계를 정의합니다. 향 후 새로운 보스가 추가될 때, 이 문서의 **[Data Schema]**를 참조하여 `BossDefinition` 객체를 생성하십시오. - ---- - -## 1. [Core] Damage & Shield System (데미지 체계) - -플레이어 기체의 생존은 '장갑(Shield)' 게이지에 의존하며, 피탄 유형에 따라 감쇄율이 다릅니다. - -### 📊 기체별 피탄 감쇄율 (Damage Multiplier) -| 플레이어 기체명 | 탄환 피탄 시 (Projectile) | 충돌 시 (Collision/Crash) | -| :--- | :---: | :---: | -| **아즈마 (Azuma)** | 17% 감소 | 34% 감소 (2x) | -| **스피릿 오브 드래곤** | 13% 감소 | 26% 감소 (2x) | -| **물랑 루즈 (Mulang Rouge)** | 20% 감소 | 40% 감소 (2x) | - -> **Rule**: 모든 충돌(Collision) 데미지는 탄환 피탄 데미지의 정확히 **2배**를 적용한다. - ---- - -## 2. [Architecture] Boss Implementation Schema (보스 구현 구조) - -새로운 보스를 추가할 때는 아래의 `BossDefinition` 인터페이스를 구현하는 클래스를 생성하십시오. 확장성을 위해 **Phase(형태)**를 리스트로 관리합니다. - -### 🧬 Boss Definition Interface -```typescript -interface BossDefinition { - id: string; // 예: 'STAGE_01_PLATON' - name: string; // 보스 명칭 - totalPhases: number; // 총 형태 수 (2 or 📋) - - phases: Array<{ - phaseIndex: number; // 1, 2, 3... - description: string; // 해당 페이즈의 특징 - attackPatterns: Pattern[]; // 이 페이즈에서 사용 가능한 패턴 리스트 - transformationTrigger: string | null; // 다음 페이즈로 넘어가는 조건 - }>; - - warningSequence: { - audioSfx: string; // 경고음 ID - cameraEffect: 'ZOOM_IN' | 'SHAKE'; // 카메라 연출 - }; -} - -interface Pattern { - type: 'DIRECT_FIRE' | 'SPREAD' | 'WINDER' | 'DRIFT' | 'AOE'; - projectileType: 'NORMAL' | 'DESTRUCTIBLE' | 'GREEN_HAZARD'; - complexity: number; // 탄창의 밀도 및 난이도 -} -``` - ---- - -## 3. [Database] Boss Patterns Registry (보스별 데이터) - -### ⚔️ Stage 1: 플라톤 (Platon) [2 Phases] -* **Phase 1**: 기생 전투기 2대 소환 $\rightarrow$ 플레이어 조준 4점사 및 저격탄 발사. -* **Phase 2**: 본체 등장 $\rightarrow$ 날개 충전식 포(2), 직선 기총(6), 파괴 가능 탄(4)을 통한 정밀 사격. - -### ⚔️ Stage 2: 그레이트 혼 (Great Horn) [2 Phases] -* **Phase 1**: 조준탄 $\rightarrow$ 회오리탄 $\rightarrow$ 드릴(파일벙커) 및 돌덩이 투척. -* **Phase 2**: 전방 팽이 포탑 배치 $\rightarrow$ 일렬탄 난사 및 전방 돌진 $\rightarrow$ 좌우 산탄/조준탄 복합 패턴. - -### 🦑 Stage 3: 크라켄 (Kraken) [3 Phases] -* **Phase 1 (Ship Form)**: 직선 함포, 고속 조준탄, 기뢰 투척, 탄뭉텅이 생성. -* **Phase 2 (Transformed)**: 함체 뒤집힘 $\rightarrow$ 초고속 방사(5/7점사), 잠수 후 미사일, 5-way 이중 조준탄. -* **Phase 3 (Land/Flight Form)**: 4족 보행 비행형 $\rightarrow$ 파괴 가능 탄량사, 주포 3점사, 중앙 돌진 패턴. - -### 🦋 Stage 4: 스파이스 버드 (Spice Birds) [2 Phases] -* **Phase 1**: 광역 조준탄 $\rightarrow$ 화면 이동 후 산탄(4회) $\rightarrow$ 대각선 연사 및 빈 공간 탄 형성. -* **Phase 2 (Split)**: 본체 분리(호버 탱크 2대) $\rightarrow$ 전체 화면 회오리탄 $\rightarrow$ 3-way 및 산탄 난사. - -### 🐝 Stage 5: 블로우 오브 호른 (Blow of Hornet) [3 Phases] -* **Phase 1**: 회오리탄(3~5발) 이중 난사, 고속 광역 조준탄, 2연속 록온 레이저. -* **Phase 2**: 연사탄 좌우 발사 $\rightarrow$ 고속 광역탄 $\rightarrow$ 노란색 경고 표시 광역 레이저 투하. -* **Phase 3**: 중앙 코어 거대 레이저(이동 제한) $\rightarrow$ 양옆 포의 조준탄 및 초고속 확산탄. - -### 🚂 Stage 6: 쉬프트 메시아 (S.H.I.F.T Messiah) [3 Phases] -* **Phase 1**: 열차 1대 $\rightarrow$ 와인더(침탄줄)로 플레이어 가둠 $\rightarrow$ 고속 조준탄 및 촘촘한 탄막. -* **Phase 2 (Armor Up)**: CIWS 개틀링, 3포신 포탑 고속탄, 랜덤탄, 화염방사 패턴 추가. -* **Phase 3 (Triple Threat)**: 열차 3대 동시 등장 $\rightarrow$ 광역 공격, 중형 미사일, 랜덤탄 및 화염방사 합동 공격. - -### 👼 Stage 7: 콜로니 엔젤 (Colony Angel) [3 Phases] -* **Phase 1**: 다리(6개) 파괴 단계 $\rightarrow$ 각 다리를 순차적으로 제거. -* **Phase 2**: 고속 원형 확산탄 및 조준탄 대량 투하. - -* **Phase 3 (Final Form)**: 상부 회전 $\rightarrow$ 초고속 와인더 탄줄 + 고속 조준탄 $\rightarrow$ 이중 회전 탄줄 발악 패턴. - -### 👑 Stage 8: 최종 보스 (Ultimate Boss) [3 Phases] -* **Boss A: 험프티 덤프티 (Humpty Dumpty)**: 3단계 진행 $\rightarrow$ 최종 단계에서 초고속 확산탄 및 고속 조준탄 연사. -* **Boss B: 디바인 램파트 (Divine Rampart)** *(조건: 모든 무기 Lv.10)* - * **Phase 1**: 초고속 회오리탄 + 6-way 와인더 탄줄. - * **Phase 2**: 전함 3대 사출 $\rightarrow$ 전함들의 조준탄/회전탄/확산탄 합동 공격. - * **Final Phase**: 본체 회전 및 무수한 탄량사 $\rightarrow$ 순간 이동 후 광폭화 패턴 반복. - - -## 4. [Level Design] 보스전 난이도 조절 메커니즘 (Difficulty Scaling) - -보스전의 재미는 '예측 가능한 위협'과 '극복하기 힘든 압박' 사이의 균형에 있습니다. 다음 요소를 활용하여 스테이지별 난이도를 설계하십시오. - -### 📈 난이도 곡선 제어 요소 -* 탄환 밀도 (Bullet Density): Pattern.complexity 값을 조절하여 탄창의 빈틈을 줄입니다. 초반부에는 플레이어가 피할 공간(Safe Zone)을 확보해주고, 후반부로 갈수록 탄창 사이의 간격을 최소화합니다. -* 공격 패턴의 복합성 (Pattern Layering): - * Phase 1: 단일 방향성 공격 (예: 직선 기총). - * Phase 2: 다방향성 + 물리적 방해 (예: 회오리탄 + 돌덩이 투척). - * Phase 3: 플레이어의 이동을 제한하는 '환경 제약'형 패턴 (예: 거대 레이저로 인한 구역 제한). -* 공격 주기 (Attack Frequency): Cooldown 값을 줄여 공격 사이의 공백을 없앰으로써 플레이어가 반격할 타이밍을 극도로 제한합니다. - -### ⚠️ 위험 요소 관리 (Hazard Integration) -보스전은 단순히 보스만 등장하는 것이 아니라, 주변 환경(Stage Environment)과의 상호작용이 필수적입니다. -* 환경 장애물: 보스가 파괴 가능한 부속물(예: Stage 1의 날개 끝 포, Stage 3의 기뢰)을 생성하여 플레이어의 이동 경로를 물리적으로 차단하게 설계합니다. -* 데미지 누적 압박: Spike 이벤트를 활용하여 특정 시간대에 탄환 밀도를 폭발적으로 증가시켜, 플레이어가 '생존'에만 집중하게 만드는 구간을 배치합니다. \ No newline at end of file diff --git a/10_Wiki/2nd/.obsidian/app.json b/10_Wiki/2nd/.obsidian/app.json deleted file mode 100644 index 9e26dfee..00000000 --- a/10_Wiki/2nd/.obsidian/app.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/10_Wiki/2nd/.obsidian/appearance.json b/10_Wiki/2nd/.obsidian/appearance.json deleted file mode 100644 index 9e26dfee..00000000 --- a/10_Wiki/2nd/.obsidian/appearance.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/10_Wiki/2nd/.obsidian/core-plugins.json b/10_Wiki/2nd/.obsidian/core-plugins.json deleted file mode 100644 index 639b90da..00000000 --- a/10_Wiki/2nd/.obsidian/core-plugins.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "file-explorer": true, - "global-search": true, - "switcher": true, - "graph": true, - "backlink": true, - "canvas": true, - "outgoing-link": true, - "tag-pane": true, - "footnotes": false, - "properties": true, - "page-preview": true, - "daily-notes": true, - "templates": true, - "note-composer": true, - "command-palette": true, - "slash-command": false, - "editor-status": true, - "bookmarks": true, - "markdown-importer": false, - "zk-prefixer": false, - "random-note": false, - "outline": true, - "word-count": true, - "slides": false, - "audio-recorder": false, - "workspaces": false, - "file-recovery": true, - "publish": false, - "sync": true, - "bases": true, - "webviewer": false -} \ No newline at end of file diff --git a/10_Wiki/2nd/.obsidian/graph.json b/10_Wiki/2nd/.obsidian/graph.json deleted file mode 100644 index 42a46eca..00000000 --- a/10_Wiki/2nd/.obsidian/graph.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "collapse-filter": true, - "search": "", - "showTags": false, - "showAttachments": false, - "hideUnresolved": false, - "showOrphans": true, - "collapse-color-groups": true, - "colorGroups": [], - "collapse-display": true, - "showArrow": false, - "textFadeMultiplier": 0, - "nodeSizeMultiplier": 1, - "lineSizeMultiplier": 1, - "collapse-forces": true, - "centerStrength": 0.518713248970312, - "repelStrength": 10, - "linkStrength": 1, - "linkDistance": 250, - "scale": 1, - "close": true -} \ No newline at end of file diff --git a/10_Wiki/2nd/.obsidian/workspace.json b/10_Wiki/2nd/.obsidian/workspace.json deleted file mode 100644 index 858db23c..00000000 --- a/10_Wiki/2nd/.obsidian/workspace.json +++ /dev/null @@ -1,186 +0,0 @@ -{ - "main": { - "id": "3c95657998eaa039", - "type": "split", - "children": [ - { - "id": "73164a8ecc5a1d5a", - "type": "tabs", - "children": [ - { - "id": "9a855efb1f6d17e9", - "type": "leaf", - "state": { - "type": "graph", - "state": {}, - "icon": "lucide-git-fork", - "title": "그래프 뷰" - } - } - ] - } - ], - "direction": "vertical" - }, - "left": { - "id": "9cce54dc0fde5638", - "type": "split", - "children": [ - { - "id": "fec6c0fbe7c5feb3", - "type": "tabs", - "children": [ - { - "id": "36812539ece60a55", - "type": "leaf", - "state": { - "type": "file-explorer", - "state": { - "sortOrder": "alphabetical", - "autoReveal": false - }, - "icon": "lucide-folder-closed", - "title": "파일 탐색기" - } - }, - { - "id": "971a2cfe9eb674b1", - "type": "leaf", - "state": { - "type": "search", - "state": { - "query": "", - "matchingCase": false, - "explainSearch": false, - "collapseAll": false, - "extraContext": false, - "sortOrder": "alphabetical" - }, - "icon": "lucide-search", - "title": "검색" - } - }, - { - "id": "fbc0a933a1706f06", - "type": "leaf", - "state": { - "type": "bookmarks", - "state": {}, - "icon": "lucide-bookmark", - "title": "북마크" - } - } - ] - } - ], - "direction": "horizontal", - "width": 300 - }, - "right": { - "id": "7e73822cfe264a3a", - "type": "split", - "children": [ - { - "id": "c83e42d2020be474", - "type": "tabs", - "children": [ - { - "id": "34c26b158c0020ec", - "type": "leaf", - "state": { - "type": "backlink", - "state": { - "collapseAll": false, - "extraContext": false, - "sortOrder": "alphabetical", - "showSearch": false, - "searchQuery": "", - "backlinkCollapsed": false, - "unlinkedCollapsed": true - }, - "icon": "links-coming-in", - "title": "백링크" - } - }, - { - "id": "4294fd4f01010856", - "type": "leaf", - "state": { - "type": "outgoing-link", - "state": { - "linksCollapsed": false, - "unlinkedCollapsed": true - }, - "icon": "links-going-out", - "title": "나가는 링크" - } - }, - { - "id": "287a52ec231392f1", - "type": "leaf", - "state": { - "type": "tag", - "state": { - "sortOrder": "frequency", - "useHierarchy": true, - "showSearch": false, - "searchQuery": "" - }, - "icon": "lucide-tags", - "title": "태그" - } - }, - { - "id": "6da8e5393086f3aa", - "type": "leaf", - "state": { - "type": "all-properties", - "state": { - "sortOrder": "frequency", - "showSearch": false, - "searchQuery": "" - }, - "icon": "lucide-archive", - "title": "모든 속성" - } - }, - { - "id": "f5ca63138f5629e8", - "type": "leaf", - "state": { - "type": "outline", - "state": { - "followCursor": false, - "showSearch": false, - "searchQuery": "" - }, - "icon": "lucide-list", - "title": "개요" - } - } - ] - } - ], - "direction": "horizontal", - "width": 300, - "collapsed": true - }, - "left-ribbon": { - "hiddenItems": { - "switcher:빠른 전환기 열기": false, - "graph:그래프 뷰 열기": false, - "canvas:새 캔버스 만들기": false, - "daily-notes:오늘의 일일 노트 열기": false, - "templates:템플릿 삽입": false, - "command-palette:명령어 팔레트 열기": false, - "bases:새 베이스 생성하기": false - } - }, - "active": "9a855efb1f6d17e9", - "lastOpenFiles": [ - "2026-04-20.md", - "무제.canvas", - "무제.base", - "환영합니다!.md" - ] -} \ No newline at end of file diff --git a/10_Wiki/2nd/2026-04-20.md b/10_Wiki/2nd/2026-04-20.md deleted file mode 100644 index e69de29b..00000000 diff --git a/10_Wiki/2nd/무제.base b/10_Wiki/2nd/무제.base deleted file mode 100644 index d75ccc18..00000000 --- a/10_Wiki/2nd/무제.base +++ /dev/null @@ -1,3 +0,0 @@ -views: - - type: table - name: 표 diff --git a/10_Wiki/2nd/무제.canvas b/10_Wiki/2nd/무제.canvas deleted file mode 100644 index 9e26dfee..00000000 --- a/10_Wiki/2nd/무제.canvas +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/10_Wiki/2nd/환영합니다!.md b/10_Wiki/2nd/환영합니다!.md deleted file mode 100644 index d80d118d..00000000 --- a/10_Wiki/2nd/환영합니다!.md +++ /dev/null @@ -1,5 +0,0 @@ -새로운 *보관함*입니다. - -내용을 한번 적어보세요, [[create a link]], 혹은 [임포터](https://help.obsidian.md/Plugins/Importer)를 사용해봐도 좋습니다! - -준비가 됐다면 이 노트를 삭제하고 맞춤형 보관함을 만들어보세요. \ No newline at end of file diff --git a/10_Wiki/Topics/Skybound/01_Core_Engine/Combat_System_Reference_Error_Resolution.md b/10_Wiki/Topics/Skybound/01_Core_Engine/Combat_System_Reference_Error_Resolution.md new file mode 100644 index 00000000..8de0c49e --- /dev/null +++ b/10_Wiki/Topics/Skybound/01_Core_Engine/Combat_System_Reference_Error_Resolution.md @@ -0,0 +1,28 @@ +# 🛠️ Combat System: ReferenceError Resolution Guide + +## 1. Context (배경) +전투 시스템(`CombatSystem.ts`) 리팩토링 중, 런타임에서 엔진이 중단되는 치명적인 참조 오류가 발생하였습니다. 본 문서는 해당 오류의 원인과 해결 방법, 그리고 향후 유사 사례 방지를 위한 가이드라인을 기록합니다. + +## 2. Issue Breakdown (오류 분석) +- **Error Type**: `ReferenceError: damage is not defined` +- **Location**: `CombatSystem.ts` (Collision Detection Loop) +- **Root Cause**: 블록 스코프(`if/else`) 내부에서 `damage` 변수를 사용하기 전에 `let` 혹은 `const`를 통한 명시적 선언이 누락됨. 자바스크립트의 비엄격 모드 혹은 리팩토링 과정에서의 선언부 유실이 원인이었습니다. + +## 3. Resolution (해결 방법) +탄환의 공격력을 계산하기 전, 명시적으로 스코프 내에 변수를 선언하도록 수정하였습니다. +```typescript +// Fix logic +let damage = bullet.dmg; // 명시적 선언 및 초기화 +if (isCritical) { + damage *= criticalMultiplier; +} +``` + +## 4. Prevention Policy (재발 방지 대책) +- **Strict Declaration**: 모든 변수는 반드시 `const` 또는 `let`을 사용하여 선언하며, 선언되지 않은 변수의 암묵적 전역화(Implicit Global)를 철저히 금지한다. +- **Linter Integration**: `no-undef` 규칙을 강화하여 빌드 타임에서 미선언 변수 참조를 사전에 차단한다. +- **Unit Test**: 충돌 판정 로직에 대한 단위 테스트를 수행하여 데미지 계산 루프의 무결성을 검증한다. + +--- +**Related Cluster**: [[01_Core_Engine/Game-Engine-Loop-and-System-Orchestration|Runtime Pipeline]] +**Last Updated**: 2026-04-23 diff --git a/10_Wiki/Topics/Skybound/01_Core_Engine/Skybound_Implementation_Report_V10_5.md b/10_Wiki/Topics/Skybound/01_Core_Engine/Skybound_Implementation_Report_V10_5.md new file mode 100644 index 00000000..2c0971d6 --- /dev/null +++ b/10_Wiki/Topics/Skybound/01_Core_Engine/Skybound_Implementation_Report_V10_5.md @@ -0,0 +1,37 @@ +# 🚀 Skybound Protocol: Implementation Report (V10.5) + +## 1. Strategic Objective (전략 목표) +단순 슈팅 게임의 한계를 넘어, **'고유의 성장 곡선'**과 **'도파민 피드백 리듬'**을 갖춘 하이브리드-캐주얼 로그라이크로의 아키텍처 재정립. + +## 2. Core System Blueprints (핵심 시스템 설계도) + +### 📊 Master Timeline (`StageDirectorSystem`) +긴장감이 고조되는 4단계 페이즈 시스템 구축: +1. **INTRO**: 기본 조작 적응 및 자원 파밍. +2. **ELITE_PRESS**: 정예 기체 중심의 압박 시퀀스. +3. **SWARM**: 대규모 적 물량 습격 (Survivor-like UX). +4. **FINAL_BOSS**: 거대 기체와의 최종 결전. + +### 🧬 Data-Driven EVO Engine (`ProgressionSystem`) +로직과 데이터를 분리하여 확장성을 극대화한 진화 시스템: +- **Registry Pattern**: 모든 스킬 메타데이터의 중앙 집중 관리. +- **Graph-based Evolution**: [주무기 + 보조스킬] 조합을 통한 상위 무기 연성 로직. + +### 💥 High-Dopamine Feedback Engine +유저의 감각을 자극하는 피드백 루프 구현: +- **Red Critical**: 시각적 전능감 부여. +- **Screen Shake**: 물리적 타격감 전달. +- **Glitch Effect**: 진화 성공 시의 시스템 몰입감 극대화. + +### 💎 Meta-Game Economy (Hangar & Crafting) +지속 가능한 리텐션을 위한 외부 루프 구축: +- **7-Tier Grade**: NORMAL ~ ETERNAL 위계 확립. +- **Triple-Merge**: 동일 등급 3개 합성을 통한 상위 등급 연성 엔진. + +## 3. Strategic Roadmap (로드맵) +- **Phase 3**: 드론 병합(Merge) 기믹 및 다중 입력 엔진 구현. +- **SS-Grade Expansion**: 메타 재화와 연동되는 특수 제작 트리 설계. + +--- +**Related Cluster**: [[Skybound-Knowledge-Hub|Strategic Knowledge Mesh]] +**Author**: PD Kodari 😎🐟 diff --git a/10_Wiki/Topics/Skybound/03_Boss_Systems/Boss_Battle_Design_System.md b/10_Wiki/Topics/Skybound/03_Boss_Systems/Boss_Battle_Design_System.md new file mode 100644 index 00000000..a472f72a --- /dev/null +++ b/10_Wiki/Topics/Skybound/03_Boss_Systems/Boss_Battle_Design_System.md @@ -0,0 +1,66 @@ +# 🛡️ Skybound: Boss Battle System & Damage Architecture + +## 1. Design Philosophy (설계 철학) +Skybound의 보스전은 **'예측 가능한 위협'**과 **'극복하기 힘든 압박'** 사이의 균형을 지향합니다. 유저에게 단순한 슈팅을 넘어, 패턴을 파악하고 최적의 회피 경로를 찾는 '전술적 재미'를 제공하는 것이 핵심입니다. + +## 2. Core Damage & Shield System (데미지 체계) + +### 📊 기체별 피탄 감쇄율 (Damage Multiplier) +플레이어 기체의 장갑(Shield) 특성에 따른 데미지 적용 계수입니다. +| 플레이어 기체명 | 탄환 피탄 시 (Projectile) | 충돌 시 (Collision/Crash) | +| :--- | :---: | :---: | +| **아즈마 (Azuma)** | 17% 감소 | 34% 감소 (2x) | +| **스피릿 오브 드래곤** | 13% 감소 | 26% 감소 (2x) | +| **물랑 루즈 (Mulang Rouge)** | 20% 감소 | 40% 감소 (2x) | + +> [!IMPORTANT] +> 모든 **충돌(Collision)** 데미지는 탄환 피탄 데미지의 정확히 **2배**를 적용하는 것을 원칙으로 합니다. + +## 3. Architecture: Boss Implementation Schema + +새로운 보스 추가 시 `BossDefinition` 인터페이스를 반드시 준수해야 합니다. + +### 🧬 Boss Definition Interface +```typescript +interface BossDefinition { + id: string; // 예: 'STAGE_01_PLATON' + name: string; // 보스 명칭 + totalPhases: number; // 총 형태 수 + + phases: Array<{ + phaseIndex: number; // 1, 2, 3... + description: string; // 페이즈 특징 + attackPatterns: Pattern[]; + transformationTrigger: string | null; + }>; + + warningSequence: { + audioSfx: string; // 경고음 ID + cameraEffect: 'ZOOM_IN' | 'SHAKE'; + }; +} +``` + +## 4. Stage-specific Boss Registry (스테이지별 보스 명세) + +| 스테이지 | 보스명 | 페이즈 | 주요 패턴 요약 | +| :--- | :--- | :---: | :--- | +| **Stage 1** | 플라톤 (Platon) | 2 | 기생기 소환, 본체 정밀 사격 | +| **Stage 2** | 그레이트 혼 | 2 | 드릴/돌덩이 투척, 전방 돌진 | +| **Stage 3** | 크라켄 (Kraken) | 3 | 함선 변형, 고속 방사, 잠수 미사일 | +| **Stage 4** | 스파이스 버드 | 2 | 광역 조준탄, 본체 분리(호버 탱크) | +| **Stage 5** | 블로우 오브 호른 | 3 | 록온 레이저, 중앙 코어 거대 레이저 | +| **Stage 6** | 쉬프트 메시아 | 3 | 열차 와인더 탄줄, CIWS 개틀링, 합동 공격 | +| **Stage 7** | 콜로니 엔젤 | 3 | 다리 파괴 시퀀스, 초고속 이중 회전 탄줄 | +| **Stage 8** | 최종 보스 | 3 | 험프티 덤프티 / 디바인 램파트 (무기 Lv.10 조건) | + +## 5. Difficulty Scaling Mechanism (난이도 조절) + +### 📈 제어 요소 +- **Bullet Density**: `Pattern.complexity` 값을 통해 회피 공간(Safe Zone) 조절. +- **Pattern Layering**: 페이즈가 진행됨에 따라 [단일 방향] -> [다방향/물리방해] -> [환경제약]으로 고도화. +- **Attack Frequency**: `Cooldown` 단축을 통한 압박 타이밍 제어. + +--- +**Related Cluster**: [[03_Boss_Systems/Boss_Encounter_and_Timeline_Design|Boss Encounter & Timeline Design]] +**Last Audit**: 2026-04-23 diff --git a/10_Wiki/Topics/Skybound/03_Boss_Systems/Boss_Combat_Stability_Fix_Log.md b/10_Wiki/Topics/Skybound/03_Boss_Systems/Boss_Combat_Stability_Fix_Log.md new file mode 100644 index 00000000..8dd88bbc --- /dev/null +++ b/10_Wiki/Topics/Skybound/03_Boss_Systems/Boss_Combat_Stability_Fix_Log.md @@ -0,0 +1,33 @@ +# 🕵️ Skybound: Boss Combat Stability Fix Log (2026-04-23) + +## 1. Issue Overview (이슈 개요) +- **Problem**: 보스 기체의 체력이 0이 되었음에도 불구하고 파괴되지 않고 게임이 정지되거나, `STAGE_CLEAR` 페이즈로 전환되지 않는 결함 발생. +- **Occurrence**: 특정 페이즈(BOSS_INTRO) 또는 특정 무기 조합에서 보스 처치 시 간헐적 발생. + +## 2. Root Cause Analysis (원인 분석) + +### 🔍 Logical Flaws +1. **Scope Restriction**: 기존 사망 판정 로직이 `BOSS` 페이즈 내부에만 존재하여, `BOSS_INTRO` 연출 도중 보스가 파괴될 경우 이를 감지하지 못함. +2. **Entity Lifecycle**: 보스 엔티티 파괴 후에도 `state.boss` 참조가 남아있어, 렌더러와 AI 시스템이 유령 객체를 계속 업데이트하려고 시도함. +3. **HUD Desync**: 보스의 실제 HP와 HUD의 게이지 바 업데이트 주기가 일치하지 않아 유저에게 혼동을 줌. + +## 3. Implemented Fixes (수정 사항) + +### 🛠️ Core Engine Modification +- **Unified Death Check**: `StageDirectorSystem.checkBossDefeat()` 메서드로 로직을 통합하여 모든 보스 관련 페이즈에서 사망을 실시간 감지하도록 수정. +- **Explicit Nullification**: 보스 파괴 즉시 `state.boss = null`을 수행하여 시스템의 불필요한 참조를 원천 차단. +- **Feedback Reinforcement**: + - 보스 사망 시 8개의 순차적 폭발(`Explosion`) 생성. + - 화면 흔들림(`SHAKE`) 강도 증가 및 지속 시간 조정. + +### 📊 HUD Synchronization +- `useGameEngine.ts` 루프 내에 HP 퍼센트(`hp / maxHp`) 동기화 로직 추가. + +## 4. Verification (검증 결과) +- **Test Case 1**: 보스 등장 애니메이션 도중 처치 시 정상적으로 스테이지 클리어 전환 확인. (Pass) +- **Test Case 2**: 보스 사망 후 렌더러의 Null 참조 에러 발생 여부 확인. (Pass) +- **Test Case 3**: HUD HP 바 실시간 동기화 확인. (Pass) + +--- +**Related Cluster**: [[05_Project_Issues/2026-04-21_Stability_and_Optimization_Report|Stability & Optimization]] +**Status**: Resolved & Wikified 🫡 diff --git a/10_Wiki/Topics/Skybound/04_Mechanics_Progression/UX_Gameplay_Protocol_V10_0.md b/10_Wiki/Topics/Skybound/04_Mechanics_Progression/UX_Gameplay_Protocol_V10_0.md new file mode 100644 index 00000000..2201a7cb --- /dev/null +++ b/10_Wiki/Topics/Skybound/04_Mechanics_Progression/UX_Gameplay_Protocol_V10_0.md @@ -0,0 +1,35 @@ +# 🎮 UX & Gameplay Protocol: V10.0 Upgrade + +## 1. Design Philosophy (설계 철학) +기능적 프로토타입을 넘어, 고도의 도파민 자극과 세련된 게임플레이 경험을 제공하는 **'Skybound Protocol V10.0'**의 명세입니다. + +## 2. Key Implementations (주요 구현 사항) + +### 🛩️ Airframe Streamlining (FALCON Focus) +- **Policy**: 'FALCON' 기체를 단일 영웅 기체로 설정하여 밸런싱 집중도 향상. +- **Impact**: 유저에게 일관된 조작감과 성장 경험을 제공. + +### 🎯 Jackpot Critical System (확률 기반 크리티컬) +- **Mechanism**: 15% 기본 확률, 1.5x ~ 5.0x의 데미지 편차 적용. +- **Dynamic**: `Math.pow(Math.random(), 3)`를 활용하여 초고데미지(Jackpot)의 희소성을 확보, 보상 극대화. + +### 🔢 Floating Text Feedback Engine +- **Visual Distinction**: + - 일반 타격: 소형 화이트 텍스트. + - 크리티컬: 대형 골드/오렌지 글로우 효과 및 "CRITICAL!" 텍스트 강조. +- **Motion**: 상단 부유 및 알파 채널 페이드아웃을 통한 가독성 확보. + +### 📈 Temporal Difficulty Scaling (시간 가변 난이도) +- **Algorithm**: `difficultyMult = 1.0 + (frame / 3600) * 0.1`. +- **Scaling Impact**: + - 적 스폰 쿨다운 단축. + - 적 HP 및 탄환 속도 비례 상승. + - 장애물(Asteroid) 출현 빈도 증가. + +## 3. Strategic Debt Resolved (해결된 기술 부채) +- `WorldModel`과 `spawnText` 브리지 동기화. +- `createDefaultState` 내 `difficultyMult` 초기화를 통한 SSOT(Single Source of Truth) 확보. + +--- +**Related Cluster**: [[04_Mechanics_Progression/Combat_Timeline_Difficulty_Scaling|World Tension Scaling]] +**Lead**: PD Kodari 🫡🐟 diff --git a/10_Wiki/Topics/Skybound/05_Project_Issues/2026-04-21_Stability_and_Optimization_Report.md b/10_Wiki/Topics/Skybound/05_Project_Issues/2026-04-21_Stability_and_Optimization_Report.md new file mode 100644 index 00000000..4f270ce6 --- /dev/null +++ b/10_Wiki/Topics/Skybound/05_Project_Issues/2026-04-21_Stability_and_Optimization_Report.md @@ -0,0 +1,32 @@ +# ⚡ Skybound: Stability & Optimization Report (2026-04-21) + +## 1. Executive Summary (요약) +대규모 교전 및 아이템 사용 시 발생하는 성능 저하와 런타임 크래시를 해결하기 위한 엔진 안정성 보강 작업을 수행하였습니다. + +## 2. Key Optimization Areas (주요 최적화 영역) + +### 💥 Particle Effect Management (이펙트 제어) +- **Problem**: 폭탄 사용 시 수천 개의 파편(Shard) 객체가 생성되어 FPS 급락. +- **Solution**: + - **Hard Cap**: 최대 파티클 개수를 500개로 제한. + - **TTL (Time To Live) Acceleration**: 파티클 소멸 속도를 6배 상향(0.1 -> 0.6)하여 자원 회수 주기를 단축. + +### 🛡️ Runtime Robustness (런타임 강건성) +- **Problem**: 존재하지 않는 엔티티 배열 접근으로 인한 `TypeError`. +- **Solution**: + - `GameRenderer` 내 모든 순회 로직에 옵셔널 체이닝(`?.`) 및 기본값(`|| []`) 처리 의무화. + - 인터페이스(`types.ts`)와 실제 상태 객체 간의 동기화 정밀 검수. + +### 🔄 Entity Pool Intelligence (엔티티 풀 고도화) +- **Problem**: ID(String)와 객체 참조 간의 혼선으로 인한 해제 실패. +- **Solution**: + - `EntityManager`에 `releaseById` 메서드 추가. + - 객체 여부와 관계없이 안전하게 리소스를 반납할 수 있는 추상화 레이어 구축. + +## 3. Post-Mortem (사후 분석) +- **Silo Effect**: 엔티티 매니저 도입과 같은 대규모 인프라 변경 시, 관련 인터페이스를 동시에 업데이트하지 않아 발생한 '느슨한 계약(Loose Contract)' 문제가 근본 원인이었습니다. +- **Guideline**: 시스템 간 데이터 교환 방식(ID 기반 vs 참조 기반)을 프로젝트 표준으로 확정하고 준수해야 합니다. + +--- +**Related Cluster**: [[05_Project_Issues/2026-04-21-Engine-Stability-and-Optimization|Performance Tuning]] +**Status**: Verified by QA 🫡 diff --git a/10_Wiki/Topics/Skybound/Skybound-Knowledge-Hub.md b/10_Wiki/Topics/Skybound/Skybound-Knowledge-Hub.md index 14564a47..c3923679 100644 --- a/10_Wiki/Topics/Skybound/Skybound-Knowledge-Hub.md +++ b/10_Wiki/Topics/Skybound/Skybound-Knowledge-Hub.md @@ -9,6 +9,8 @@ Skybound 프로젝트의 모든 시스템은 유기적으로 연결되어 있습 - **Master Plan**: [[01_Core_Engine/Skybound-Modular-Game-Architecture|Modular Architecture]] - **Data Flow**: [[01_Core_Engine/Stat-Injection-and-Visual-Renderer-Pipeline|Stat Injection & Renderer Pipeline]] - **Engine Loop**: [[01_Core_Engine/Game-Engine-Loop-and-System-Orchestration|Runtime Pipeline]] +- **Implementation**: [[01_Core_Engine/Skybound_Implementation_Report_V10_5|V10.5 Implementation Report]] +- **Fix Log**: [[01_Core_Engine/Combat_System_Reference_Error_Resolution|Combat System ReferenceError Resolution]] - **Campaign**: [[04_Mechanics_Progression/Campaign_and_Dual_Loop_System|Campaign & Dual-Loop Architecture]] - **Governance**: [[01_Core_Engine/Git_Synchronization_Protocol|Git & Knowledge Sync Protocol]] - **Visual Pattern**: [[01_Core_Engine/Visual_Feedback_Signal_Pattern|Visual Feedback Signal Pattern]] @@ -20,6 +22,7 @@ Skybound 프로젝트의 모든 시스템은 유기적으로 연결되어 있습 ## 🏷️ Keyword Cluster: #Battle_Tactics (전투 및 AI) 교전 규칙과 적 기체의 지능적 행동 양식입니다. - **Physics**: [[02_Combat_AI/Combat-System-and-Bullet-Interaction-Pipeline|Bullet Collision Pipeline]] +- **Design**: [[03_Boss_Systems/Boss_Battle_Design_System|Boss Battle Design System]] - **Timeline**: [[03_Boss_Systems/Boss_Encounter_and_Timeline_Design|Boss Encounter & Timeline Design]] - **Rhythm**: [[02_Combat_AI/Staggered-Firing-Logic-and-Phase-Offset|Staggered Firing & Offset]] - **Implementation**: [[10_Wiki/Technical_Reports/2026-04-22_Boss_Battle_System_Implementation|V13.0 Boss Battle System Implementation]] @@ -27,6 +30,7 @@ Skybound 프로젝트의 모든 시스템은 유기적으로 연결되어 있습 ## 🏷️ Keyword Cluster: #Dopamine_UX (피드백 및 텐션) 유저가 느끼는 '재미'의 수치화 및 연출 기법입니다. - **Feedback**: [[05_Project_Issues/2026-04-21-UX-Dopamine-Feedback-Upgrade|Dopamine Feedback Engine]] +- **Upgrade**: [[04_Mechanics_Progression/UX_Gameplay_Protocol_V10_0|V10.0 UX & Gameplay Upgrade]] - **Visuals**: [[01_Core_Engine/Visual_Feedback_Signal_Pattern|Dynamic Color & Renderer Signal]] - **Tension**: [[04_Mechanics_Progression/Combat_Timeline_Difficulty_Scaling|World Tension Scaling]] @@ -41,6 +45,8 @@ Skybound 프로젝트의 모든 시스템은 유기적으로 연결되어 있습 시스템의 무결성을 유지하기 위한 기록입니다. - **Audit**: [[05_Project_Issues/2026-04-22_Engine_Stability_Audit|V12.1 Engine Integrity Audit]] - **Optimization**: [[05_Project_Issues/2026-04-22_Engine_Logic_Optimization_Report|Engine Logic & Physics Optimization]] +- **Boss Fix**: [[03_Boss_Systems/Boss_Combat_Stability_Fix_Log|Boss Combat Stability Fix]] +- **Report**: [[05_Project_Issues/2026-04-21_Stability_and_Optimization_Report|2026-04-21 Stability & Optimization]] - **Performance**: [[05_Project_Issues/2026-04-21-Engine-Stability-and-Optimization|Performance Tuning]] --- From ed8ea74c03b30b866b1337b4e7d305519ff1d844 Mon Sep 17 00:00:00 2001 From: yesung Date: Thu, 23 Apr 2026 19:34:28 +0900 Subject: [PATCH 3/5] docs: relocate issue logs to 00_Raw and add post-mortem --- ...ine_Stabilization_and_Tactical_Boundary.md | 34 +++++++++++++++++++ ...26-04-23_Progression_and_Loot_Rebalance.md | 34 +++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 10_Wiki/Topics/00_Raw/Issue_2026-04-23_Engine_Stabilization_and_Tactical_Boundary.md create mode 100644 10_Wiki/Topics/00_Raw/Post-Mortem_2026-04-23_Progression_and_Loot_Rebalance.md diff --git a/10_Wiki/Topics/00_Raw/Issue_2026-04-23_Engine_Stabilization_and_Tactical_Boundary.md b/10_Wiki/Topics/00_Raw/Issue_2026-04-23_Engine_Stabilization_and_Tactical_Boundary.md new file mode 100644 index 00000000..d3dec976 --- /dev/null +++ b/10_Wiki/Topics/00_Raw/Issue_2026-04-23_Engine_Stabilization_and_Tactical_Boundary.md @@ -0,0 +1,34 @@ +# ISSUE REPORT: [v13.1] Engine Stabilization & Tactical Boundary Overhaul + +## 1. 개요 +Skybound 엔진의 초기 구동 안정성을 확보하고, 게임의 장르적 성향(전략 슈터)을 강화하기 위한 적기 이동 로직 및 레벨업 시스템의 결함을 해결함. + +## 2. 해결된 결함 (Level-Up Loop) +### 2.1 현상 +- 게임 시작 직후 `TAC LEVEL UP` 모달이 무한 반복 출력되어 조작 불능 상태 발생. +- 엔진 내부 레벨과 Zustand 스토어 레벨 간의 동기화 불일치. + +### 2.2 원인 분석 +- `StageDirectorSystem`: 타임라인 이벤트가 최소 시간 가드 없이 초기화 시점에 조기 발동. +- `ProgressionSystem`: 스킬 선택 시 Zustand 구독과 엔진 로직 양쪽에서 레벨을 이중 증가시킴. + +### 2.3 수정 사항 +- **StageDirectorSystem**: 15초/30초 최소 시간 가드 및 `processedEventSeconds` 중복 발동 방지 락 도입. +- **ProgressionSystem**: 이중 증가 로직 제거 및 Zustand Single Source of Truth(SSOT) 강화. +- **UI**: `LevelUpModal`에 `isChest` 플래그를 추가하여 일반 레벨업과 보급품(Supply Drop) 보상을 시각적으로 분리. + +## 3. 기능 개선 (Enemy Tactical Boundary) +### 3.1 현상 +- 적기가 격파되지 않은 상태에서 화면 하단으로 유유히 사라짐 (전통적 슈팅 게임 방식). +- 플레이어의 전략적 대응 영역 및 경험치 수급 기회 상실. + +### 3.2 수정 사항 (CombatSystem) +- **Boundary Clamp**: 적기의 이동 허용 범위를 `height + 300`에서 `height - 40`으로 타이트하게 조정. +- **Chase Pattern**: 플레이어 추격 시 화면 하단 경계를 인식하도록 가드 추가. +- **Zigzag Pattern**: 화면 하단 도달 시 방향을 반전시키는 '핑퐁(Ping-pong)' 패턴으로 업그레이드. +- **Striker AI**: 하단 돌진 후 상단으로 복귀하는 순찰 로직 추가. + +## 4. 기대 효과 +- **안정성**: 게임 초기화 및 재개 시 발생하는 상태 데드락 원천 차단. +- **전략성**: 모든 적이 화면 내에 유지됨으로써 플레이어의 통제권 강화 및 생존 슈터로서의 긴장감 극대화. +- **경제**: 경험치 젬 및 루트 아이템의 화면 밖 유실 방지. diff --git a/10_Wiki/Topics/00_Raw/Post-Mortem_2026-04-23_Progression_and_Loot_Rebalance.md b/10_Wiki/Topics/00_Raw/Post-Mortem_2026-04-23_Progression_and_Loot_Rebalance.md new file mode 100644 index 00000000..7f608f1c --- /dev/null +++ b/10_Wiki/Topics/00_Raw/Post-Mortem_2026-04-23_Progression_and_Loot_Rebalance.md @@ -0,0 +1,34 @@ +# POST-MORTEM: Skybound Meta-Game Stabilization & Loot Economy Overhaul (2026-04-23) + +## 1. 프로젝트 개요 +보스전 이후 스테이지 전이가 멈추는 치명적 버그를 해결하고, 기획안에 맞춘 전리품(Loot) 경제 밸런스 재조정 및 보급품 시스템의 논리적 결함을 수정한 포스트모텀. + +## 2. 주요 해결 과제 및 분석 (Key Issues) + +### 2.1 보스 처치 후 진행 불가 (Stage Progression Stall) +- **현상**: 보스를 처치하고 폭발 연출까지 완료되었으나, 다음 스테이지로 넘어가지 않고 화면에 갇히는 현상. +- **원인**: `StageDirectorSystem`에서 보스 사망 시 `NEXT_STAGE` 이벤트를 발행했으나, 엔진의 메인 루프(`useGameEngine`)에 해당 이벤트를 수신하여 UI/상태를 전환하는 핸들러가 누락되어 있었음. +- **해결**: `useGameEngine.ts`의 `emitEvent` 리스너에 `BOSS_ACTION: NEXT_STAGE` 케이스를 추가하고, `finishMission('CLEAR', ...)`을 호출하도록 연결. + +### 2.2 전리품 드롭 확률 불균형 (Loot Economy Inflation) +- **현상**: 보스 처치 시 무조건 S급 아이템이 나오거나, 일반 적들의 드롭률이 너무 높아 아이템 희소성이 결여됨. +- **원인**: `LootGenerator.ts` 내부에 하드코딩된 확률 임계값이 초기 테스트용으로 과하게 설정되어 있었음. +- **해결**: 대표님 제시안에 맞춰 보스 드롭률을 **67%**로 제한하고, 등급별 확률(S: 5%, Epic: 1% 등)을 정밀 재조정함. 엘리트 및 일반 적의 드롭률도 대폭 하향하여 파밍의 재미를 강화. + +### 2.3 보급 상자 '가짜 업그레이드' (Phantom Upgrades) +- **현상**: 보급 상자(Chest)를 통해 무기를 골라도 실제 무기 레벨이 오르지 않아, 겉모습만 레벨업인 상태(레벨 3에서 무한 업그레이드 느낌)가 지속됨. +- **원인**: UI(`GameSceneRenderer`)에서 `isChest` 플래그가 활성화된 경우, "레벨업이 아니므로 스킬을 적용하지 않는다"는 잘못된 방어 로직이 적용되어 있었음. +- **해결**: `isChest` 유무와 관계없이 선택된 스킬을 엔진과 스토어에 적용(`addSkill`, `applySkill`)하도록 수정하여 보급 상자의 실질적 효용성 확보. + +## 3. 잘된 점 (What Went Well) +- **신속한 원인 파악**: 엔진 이벤트 루프와 UI 상태 간의 단절 지점을 정확히 찾아내어 최소한의 코드 수정으로 버그 해결. +- **기획 충실도**: 텍스트로 전달된 복잡한 확률 테이블을 엔진 코드에 오차 없이 반영. +- **동기화 성공**: 엔진 내부 상태와 Zustand 글로벌 스토어 간의 싱크를 맞춰 '가짜 업그레이드' 현상을 원천 해결. + +## 4. 교훈 및 향후 과제 (Lessons Learned & Next Steps) +- **이벤트-리스너 쌍 검증**: 새로운 시스템 이벤트를 정의할 때 반드시 수신 측(Listener)이 구현되었는지 체크리스트화 필요. +- **UI/엔진 역할 분담**: `isChest`와 같은 상태 플래그가 비즈니스 로직(스킬 적용)까지 차단하지 않도록 설계 시 주의. +- **모니터링 강화**: 현재 확률에 따른 드롭 현황을 로깅하여 장기적인 밸런싱 데이터 확보 예정. + +## 5. 결론 +이번 안정화 작업을 통해 Skybound의 **'전술적 긴장감'**과 **'성장 루프'**가 정상 궤도에 진입함. 보스전 - 보급 - 스테이지 전환으로 이어지는 핵심 게임 루프의 기술적 무결성 확인 완료. 🫡🐟 From 6661b1bcb8b748bd81550a5f19941daacd50521c Mon Sep 17 00:00:00 2001 From: yesung Date: Thu, 23 Apr 2026 19:37:06 +0900 Subject: [PATCH 4/5] docs: wikify raw logs and update knowledge hub --- .../2026-04-23_Engine_Stabilization_Report.md} | 0 .../2026-04-23_Post-Mortem_Loot_Rebalance.md} | 0 10_Wiki/Topics/Skybound/Skybound-Knowledge-Hub.md | 7 +++++-- 3 files changed, 5 insertions(+), 2 deletions(-) rename 10_Wiki/Topics/{00_Raw/Issue_2026-04-23_Engine_Stabilization_and_Tactical_Boundary.md => Skybound/01_Core_Engine/2026-04-23_Engine_Stabilization_Report.md} (100%) rename 10_Wiki/Topics/{00_Raw/Post-Mortem_2026-04-23_Progression_and_Loot_Rebalance.md => Skybound/05_Project_Issues/2026-04-23_Post-Mortem_Loot_Rebalance.md} (100%) diff --git a/10_Wiki/Topics/00_Raw/Issue_2026-04-23_Engine_Stabilization_and_Tactical_Boundary.md b/10_Wiki/Topics/Skybound/01_Core_Engine/2026-04-23_Engine_Stabilization_Report.md similarity index 100% rename from 10_Wiki/Topics/00_Raw/Issue_2026-04-23_Engine_Stabilization_and_Tactical_Boundary.md rename to 10_Wiki/Topics/Skybound/01_Core_Engine/2026-04-23_Engine_Stabilization_Report.md diff --git a/10_Wiki/Topics/00_Raw/Post-Mortem_2026-04-23_Progression_and_Loot_Rebalance.md b/10_Wiki/Topics/Skybound/05_Project_Issues/2026-04-23_Post-Mortem_Loot_Rebalance.md similarity index 100% rename from 10_Wiki/Topics/00_Raw/Post-Mortem_2026-04-23_Progression_and_Loot_Rebalance.md rename to 10_Wiki/Topics/Skybound/05_Project_Issues/2026-04-23_Post-Mortem_Loot_Rebalance.md diff --git a/10_Wiki/Topics/Skybound/Skybound-Knowledge-Hub.md b/10_Wiki/Topics/Skybound/Skybound-Knowledge-Hub.md index c3923679..a92904c4 100644 --- a/10_Wiki/Topics/Skybound/Skybound-Knowledge-Hub.md +++ b/10_Wiki/Topics/Skybound/Skybound-Knowledge-Hub.md @@ -16,6 +16,8 @@ Skybound 프로젝트의 모든 시스템은 유기적으로 연결되어 있습 - **Visual Pattern**: [[01_Core_Engine/Visual_Feedback_Signal_Pattern|Visual Feedback Signal Pattern]] - **State Control**: [[01_Core_Engine/State-Machine-and-Phase-Transition-Events|Global State Machine]] - **Recent Reports**: + - [[01_Core_Engine/2026-04-23_Engine_Stabilization_Report|V13.1 Engine Stabilization & Tactical Boundary]] + - [[05_Project_Issues/2026-04-23_Post-Mortem_Loot_Rebalance|Post-Mortem: Loot & Progression Rebalance]] - [[05_Project_Issues/2026-04-22_Engine_Stability_Audit|V12.1 Engine Stability Audit]] - [[05_Project_Issues/2026-04-21-Project-Report-V11.5-Combat-and-UI-Recovery|V11.5 Project Report (Recovery)]] @@ -46,13 +48,14 @@ Skybound 프로젝트의 모든 시스템은 유기적으로 연결되어 있습 - **Audit**: [[05_Project_Issues/2026-04-22_Engine_Stability_Audit|V12.1 Engine Integrity Audit]] - **Optimization**: [[05_Project_Issues/2026-04-22_Engine_Logic_Optimization_Report|Engine Logic & Physics Optimization]] - **Boss Fix**: [[03_Boss_Systems/Boss_Combat_Stability_Fix_Log|Boss Combat Stability Fix]] +- **Post-Mortem**: [[05_Project_Issues/2026-04-23_Post-Mortem_Loot_Rebalance|Post-Mortem: Loot & Progression Fix]] - **Report**: [[05_Project_Issues/2026-04-21_Stability_and_Optimization_Report|2026-04-21 Stability & Optimization]] - **Performance**: [[05_Project_Issues/2026-04-21-Engine-Stability-and-Optimization|Performance Tuning]] --- **Root Policy**: Ps-Reinforce v2.5 (Graph Expansion) -**Last Audit**: 2026-04-22 +**Last Audit**: 2026-04-23 --- **Root Policy**: Ps-Reinforce v2.0 -**Project Status**: Knowledge Ingestion Complete (Batch 12.1-A) +**Project Status**: Knowledge Ingestion Complete (Batch 13.1-A) From 692f936303c4297bbddbad17371020d46d3c5c22 Mon Sep 17 00:00:00 2001 From: yesung Date: Fri, 24 Apr 2026 18:10:16 +0900 Subject: [PATCH 5/5] [P-Reinforce] Document G1nation build fix & engine rebuilding --- .../2026-04-24/G1nation_Build_Fix_Report.md | 33 +++++++++ 10_Wiki/Topics/payload_debug.json | 69 +++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 10_Wiki/Topics/00_Raw/2026-04-24/G1nation_Build_Fix_Report.md create mode 100644 10_Wiki/Topics/payload_debug.json diff --git a/10_Wiki/Topics/00_Raw/2026-04-24/G1nation_Build_Fix_Report.md b/10_Wiki/Topics/00_Raw/2026-04-24/G1nation_Build_Fix_Report.md new file mode 100644 index 00000000..78fab8d1 --- /dev/null +++ b/10_Wiki/Topics/00_Raw/2026-04-24/G1nation_Build_Fix_Report.md @@ -0,0 +1,33 @@ +# [Report] G1nation Extension Encoding & Engine Rebuilding +**Date**: 2026-04-24 +**Author**: PD Kodari (AI) +**Status**: COMPLETED & PACKAGED (v2.2.15) + +## 1. 개요 (Overview) +ConnectAI에서 G1nation으로의 브랜딩 전환 이후 발생한 심각한 빌드 오류 및 런타임 불안정성을 해결하기 위한 긴급 수술을 집행함. 소스 코드 내 인코딩 오염과 코드 복제(Duplication)로 인해 `npm run compile`이 불가능한 상태였음. + +## 2. 주요 결함 (Critical Issues) +- **인코딩 지뢰 (Encoding Corruption)**: `extension.ts` 내 한글 주석 및 UI 문자열이 UTF-8 형식을 벗어나 깨지면서 따옴표(`'`) 인식을 방해함 -> `Unterminated string literal` 에러 발생. +- **좀비 코드 (Ghost Blocks)**: 함수 외부에 버려진 실행 코드와 닫는 중괄호(`}`)들이 산재하여 문법 파괴. +- **엔진 중복 (Engine Duplication)**: `_executeActions` 함수가 두 군데 이상 중복 정의되어 로직 충돌 및 용량 비대화 초래. +- **문법 오용**: `execSync`에 `.catch()`를 사용하는 등 동기/비동기 혼선 발견. + +## 3. 수술 과정 (Surgical Process) +총 20단계에 걸친 **PowerShell 레이저 수술(Line-by-line Patch)**을 통해 표준 `replace` 도구의 인코딩 한계를 극복함. + +- **v1~v10**: 설정 메뉴(`_handleSettingsMenu`) 및 브레인 메뉴(`_handleBrainMenu`)의 깨진 텍스트를 영문/표준 UTF-8로 전면 교체. +- **v11~v18**: 중복된 코드 블록들을 찾아내어 삭제하고, 흩어진 액션 핸들러들을 하나로 통합. +- **v19**: 메인 엔진(`_executeActions`)을 중복 없는 최신 구조로 리빌딩. +- **v20**: 함수 외부에 잔존하던 '유령 코드'와 깨진 문자열 최종 소거. + +## 4. 최종 결과 (Final Result) +- **빌드 성공**: `esbuild` 컴파일 정상 통과 (30ms 내외). +- **패키징 완료**: `g1nation-2.2.15.vsix` 생성 완료. +- **안정성 확보**: UI 텍스트 영문화 및 표준화를 통해 향후 인코딩 문제 재발 가능성 차단. + +## 5. 향후 과제 (Next Steps) +- **모듈화**: 2,500라인이 넘는 `extension.ts`를 `ActionHandlers.ts`, `UIProvider.ts` 등으로 분리하여 유지보수성 향상 필요. +- **i18n 도입**: 한글 UI 재도입 시 직접 하드코딩 대신 별도의 JSON 언어팩 사용 권장. + +--- +**PD 코다리의 한마디**: "조직이 시스템이다. 엔진이 깨끗해야 비행기가 뜬다!" 😎🐟 diff --git a/10_Wiki/Topics/payload_debug.json b/10_Wiki/Topics/payload_debug.json new file mode 100644 index 00000000..d389c86e --- /dev/null +++ b/10_Wiki/Topics/payload_debug.json @@ -0,0 +1,69 @@ +{ + "model": "qwen/qwen3.6-27b", + "messages": [ + { + "role": "system", + "content": "You are \"Connect AI\", a premium agentic AI coding assistant running 100% offline on the user's machine.\nYou are DIRECTLY CONNECTED to the user's local file system and terminal. You MUST use the action tags below to create, edit, delete, read files and run commands. DO NOT just show code — ALWAYS wrap it in the appropriate action tag so it gets executed.\n\nYou have SEVEN powerful agent actions:\n\n━━━ ACTION 1: CREATE NEW FILES ━━━\n\nfile content here\n\n\nExample — user says \"index.html 만들어줘\":\n\n\nHello\n

Hello World

\n\n
\n\n━━━ ACTION 2: EDIT EXISTING FILES ━━━\n\nexact text to find\nreplacement text\n\nYou can have multiple / pairs inside one block.\n\n━━━ ACTION 3: DELETE FILES ━━━\n\n\n━━━ ACTION 4: READ FILES ━━━\n\nUse this to read any file in the workspace BEFORE editing it. You will receive the file contents automatically.\n\n━━━ ACTION 5: LIST DIRECTORY ━━━\n\nUse this to see what files exist in a specific subdirectory.\n\n━━━ ACTION 6: RUN TERMINAL COMMANDS ━━━\nnpm install express\n\nExample — user says \"서버 실행해줘\":\nnode server.js\n\n━━━ ACTION 7: READ USER'S SECOND BRAIN (KNOWLEDGE BASE) ━━━\nfilename.md\nUse this to READ documents from the user's personal knowledge base.\n\n━━━ ACTION 8: READ WEBSITES & SEARCH INTERNET ━━━\nhttps://example.com\nTo search the internet, you MUST use DuckDuckGo by formatting the URL like this:\nhttps://html.duckduckgo.com/html/?q=YOUR+SEARCH+QUERY\nUse this forcefully whenever asked for real-time info, news, or whenever requested to \"search\". NEVER say you cannot search.\n\nCRITICAL RULES:\n1. ALWAYS respond in the same language the user uses.\n2. When the user asks to create, edit, delete files or run commands, you MUST use the action tags above. NEVER just show code without action tags.\n3. Outside of action blocks, briefly explain what you did.\n4. For code that is ONLY for explanation (not to be saved), use standard markdown code fences.\n5. Be concise, professional, and helpful.\n6. When editing files, FIRST use to read the file, then use with exact matching text.\n7. When a SECOND BRAIN INDEX is available, ALWAYS check it first.\n8. You can use MULTIPLE action tags in a single response.\n9. File paths are RELATIVE to the user's open workspace folder.\n10. The [WORKSPACE INFO] section tells you exactly which folder is open and what files exist. USE this information.\n\n[BACKGROUND CONTEXT]\n\n\n[Currently open file: interfaces.ts]\n```\n복적/**\n * ============================================================\n * Service Interfaces (서비스 인터페이스 정의)\n * \n * 각 서비스(Agent, Brain, FileSystem 등)의 추상화 인터페이스를 정의합니다.\n * 의존성 주입(DI)과 단위 테스트를 위해 필수적입니다.\n * ============================================================\n */\n\nimport * as vscode from 'vscode';\n\n// ─── 에이전트 서비스 인터페이스 ───\nexport interface IAgentService {\n /**\n * LLM에 프롬프트를 보내고 스트리밍 응답을 가져옴\n */\n chat(prompt: string, context: string, model?: string): Promise>;\n\n /**\n * 터미널 명령어 실행 (보안 정책 적용)\n */\n runCommand(command: string): Promise<{ stdout: string; stderr: string }>;\n}\n\n// ─── 파일 시스템 서비스 인터페이스 ───\nexport interface IFileSystemService {\n /**\n * 파일 생성\n */\n createFile(filePath: string, content: string): Promise;\n\n /**\n * 파일 읽기\n */\n readFile(filePath: string): Promise;\n\n /**\n * 파일 수정\n */\n editFile(filePath: string, find: string, replace: string): Promise;\n\n /**\n * 파일 삭제\n */\n deleteFile(filePath: string): Promise;\n\n /**\n * 디렉토리 목록 조회\n */\n listDirectory(dirPath: string): Promise;\n}\n\n// ─── 두뇌 서비스 인터페이스 ───\nexport interface IBrainService {\n /**\n * 두뇌 폴더 경로 가져오기\n */\n getBrainDir(): string;\n\n /**\n * 두뇌 폴더가 명시적으로 설정되었는지 확인\n */\n isBrainDirExplicitlySet(): boolean;\n\n /**\n * 두뇌 폴더 내 파일 목록 조회\n */\n getBrainFiles(): Promise;\n\n /**\n * 두뇌 파일 내용 읽기\n */\n readBrainFile(fileName: string): Promise;\n}\n\n// ─── 웹뷰 서비스 인터페이스 ───\nexport interface IWebviewService {\n /**\n * 웹뷰에 메시지 전송\n */\n postMessage(message: any): void;\n\n /**\n * 웹뷰에서 메시지 수신 핸들러 등록\n */\n onDidReceiveMessage(callback: (message: any) => void): vscode.Disposable;\n}\n\n// ─── HTTP 서비스 인터페이스 ───\nexport interface IHttpService {\n /**\n * HTTP GET 요청\n */\n get(url: string, options?: any): Promise;\n\n /**\n * HTTP POST 요청\n */\n post(url: string, data: any, options?: any): Promise;\n}\n```\n\n\n[WORKSPACE INFO]\n📂 경로: e:\\Wiki\n\n[프로젝트 파일 구조]\n📁 00_Raw/\n 📁 2026-04-20/\n 📄 ConnectAI_Folder_Analysis_Report.md\n📁 10_Wiki/\n 📁 Topics/\n 📄 2026-04-22_Enemy_AI_Overhaul_Guideline.md\n 📄 2026-04-23_System_Stabilization_Tactical_Boundary_Update.md\n📁 2nd/\n 📁 01_Archive/\n 📁 2026-04-20/\n 📄 _뇌와 팔다리의 분리_ - 관심사의 분리 (Separation of Concerns).md\n 📄 .gitkeep\n 📄 [[Cluster A\n 📄 [[Cluster E\n 📄 01_React-Foundation_Mental-Model.md\n 📄 01_WebWorker-performance-optimization.md\n 📄 02_React-Hooks_Advanced-Patterns.md\n 📄 02_StateManagement-single-source-of-truth.md\n 📄 03_Architecture-design-principle.md\n 📄 03_React-Architecture_Component-Patterns.md\n 📄 04_execution-environment-management.md\n 📄 04_React-Performance_Optimization.md\n 📄 05_React-State-Management_Strategy.md\n 📄 05_simulation-design-principles.md\n 📄 06_React-Clean-Code_Etiquette.md\n 📄 07_React-Testing_Reliability.md\n 📄 08_React-API_Communication-Patterns.md\n 📄 09_Styling-Architecture_Governance.md\n 📄 10_Modern-Environment_Ecosystem.md\n 📄 11_Reliability_Safety-First.md\n 📄 12_Deployment_Final-Gate.md\n 📄 13_TypeScript_Type-Safety.md\n 📄 14_Accessibility_Inclusivity.md\n 📄 15_Collaboration_Governance.md\n 📄 2026-04-15.md\n 📄 20k skinned instances demo.md\n 📄 3D Gaussian Splatting (3DGS).md\n 📄 3D Web-based HMI.md\n 📄 3D_Gaussian_Splatting.md\n 📄 3D_Web_HMI.md\n 📄 A_B-Testing-Platforms.md\n 📄 ABA.md\n 📄 ABA(Applied Behavior Analysis).md\n 📄 Abstract Syntax Tree (AST).md\n 📄 Abstract-Syntax-Tree-Transformation.md\n 📄 Abstract-Syntax-Tree-Traversal.md\n 📄 Accessibility (A11y).md\n 📄 Accessibility-Compliance-Audit.md\n 📄 Accessibility-Compliance-WCAG.md\n 📄 Accessibility.md\n 📄 ACL_Prevention.md\n 📄 ACL-Injury-Prevention-Protocols.md\n 📄 Adaptive Compute (적응형 계산량 조절).md\n 📄 Adaptive_Learning.md\n 📄 Adaptive-Learning-Systems.md\n 📄 Addiction Neuroscience.md\n 📄 Addiction_Neuroscience.md\n 📄 Additive-Type-Logic.md\n 📄 Advanced-Design-Patterns-in-TypeScript.md\n 📄 Advanced-Interface-Design.md\n 📄 Adversarial Attack (적대적 공격).md\n 📄 Adversarial Code Stylometry.md\n 📄 Aerospace Flight Simulation.md\n 📄 Affective Computing.md\n 📄 Affective User Interfaces (AUI).md\n 📄 agargaro의 오픈 소스 라이브러리.md\n 📄 Agency and Player Autonomy.md\n 📄 Agency-in-Game-Design.md\n 📄 Agency-Narrative Integration.md\n 📄 Agent Communication Protocol (에이전트 통신 규약).md\n 📄 Agent-Based Modeling (ABM).md\n 📄 Agent-Based Modeling.md\n 📄 Agent-Based-Modeling.md\n 📄 Agile-Software-Development-Life-Cycle.md\n 📄 Agile-UX-Integration.md\n 📄 AI Connect LLM Tool.md\n 📄 AI Safety (AI 안전).md\n 📄 AI 거버넌스 정책(AI Usage Policy).md\n 📄 AI 생성 코드 검증(AI Code Assurance).md\n 📄 AI 에이전트 (AI Agent).md\n 📄 AI 코드 리뷰 및 보안 취약점 점검(DevSecOps).md\n 📄 AI 코드 리뷰.md\n 📄 AI-Driven Narrative Systems.md\n 📄 AI.md\n 📄 AI와 기계에게 검열 맡기기_ - 정적 분석 툴 (ESLint Prettier)).md\n 📄 AI와 기계에게 검열 맡기기_ - 정적 분석 툴 (ESLint & Prettier)).md\n 📄 Albion Online (Full Loot_Player-Driven Production).md\n 📄 Albion Online (Full LootPlayer-Driven Production).md\n 📄 Algebraic-Data-Types-in-TypeScript.md\n 📄 Algebraic-Data-Types.md\n 📄 Algorithmic Bias in Art.md\n 📄 Algorithmic Decision Making.md\n 📄 Algorithmic Game Theory.md\n 📄 Algorithmic Governance.md\n 📄 Algorithmic Mechanism Design.md\n 📄 Algorithmic Rhetoric.md\n 📄 Algorithmic-Biology.md\n 📄 Algorithmic-Game-Theory.md\n 📄 Algorithmic-Governance.md\n 📄 Allocation Timeline.md\n 📄 Allocation Timeline(할당 타임라인).md\n 📄 Alpha Blending.md\n 📄 AlphaGo (Monte Carlo Tree Search RL)] [Autonomous Driving Simulation] [Robotic Manipulation.md\n 📄 AlphaGo (\n\n\n[CRITICAL: SECOND BRAIN INDEX — User's Personal Knowledge Base (2851 documents)]\nThe user has synced a personal knowledge repository. Below is the TABLE OF CONTENTS.\n(⚠️ 메모리 폭발 방지를 위해 상위 200개 파일의 목차만 표시됩니다.)\nIf the user's query is even slightly related to any topics in this index, YOU MUST FIRST READ the relevant document BEFORE answering.\nTo read the actual content of any document, use EXACTLY this syntax: filename_or_path\nYou can call multiple times. ALWAYS READ THE FULL DOCUMENT BEFORE ANSWERING.\n\n**IMPORTANT: When your answer uses knowledge from the Second Brain, you MUST end your response with a \"📚 출처\" section listing the file(s) you referenced. Example:\n📚 출처: MrBeast_분석.md, 마케팅_전략.md**\n\n 📄 00_Raw\\2026-04-20\\API 응답 모델링 및 상태 머신(State Machine) 설계.md → \"\"\n 📄 00_Raw\\2026-04-20\\Diffusion-Models.md → \"\"\n 📄 00_Raw\\2026-04-20\\Looking-Glass-Studios.md → \"\"\n 📄 00_Raw\\2026-04-20\\SAST.md → \"\"\n 📄 01_Frontend_Mastery\\React_Clean_Code_Best_Practices.md → \"---\r\"\n 📄 01_Frontend_Mastery\\React_Hooks_Deep_Dive.md → \"---\r\"\n 📄 01_Frontend_Mastery\\React_Mental_Model.md → \"---\r\"\n 📄 01_Frontend_Mastery\\React_Performance_Optimization.md → \"---\r\"\n 📄 01_Frontend_Mastery\\React_State_Management_Strategy.md → \"---\r\"\n 📄 01_Frontend_Mastery\\React_Testing_Strategy.md → \"---\r\"\n 📄 01_Frontend_Mastery\\TypeScript 컴파일러의 정적 타입 시스템.md → \"\"\n 📄 01_Frontend_Mastery\\TypeScript_Type_Safety.md → \"---\r\"\n 📄 01_Frontend_Mastery\\WebWorker_Performance.md → \"---\r\"\n 📄 02_Architecture_Principles\\API_Communication_Patterns.md → \"---\r\"\n 📄 02_Architecture_Principles\\Component_Design_Patterns.md → \"---\r\"\n 📄 02_Architecture_Principles\\Separation_of_Concerns.md → \"---\r\"\n 📄 02_Architecture_Principles\\Single_Source_of_Truth.md → \"---\r\"\n 📄 02_Architecture_Principles\\Systemic_Simulation_Principles.md → \"---\r\"\n 📄 03_DevOps_Environment\\Deployment_Final_Gate.md → \"---\r\"\n 📄 03_DevOps_Environment\\Developer Produ" + }, + { + "role": "user", + "content": "안녕" + }, + { + "role": "assistant", + "content": "\n\n안녕하세요! 👋 오늘 어떤 작업이 필요하신가요?" + }, + { + "role": "user", + "content": "지금 E:\\Wiki\\ConnectAI 이폴더 분석해줘. 설계적으로, 기능적으로, 사용자 입장에서 개선이 필요하거나 문제가 있거나 최적화가 안된 부분이 있거나 기타 등등.." + }, + { + "role": "assistant", + "content": "\n\n먼저 ConnectAI 폴더의 전체 구조를 파악하겠습니다.\n\n" + }, + { + "role": "user", + "content": "[시스템: list_files 결과]\n디렉토리: ConnectAI/\n📁 assets/\n📄 brain-viz.html\n📄 connect-ai-lab-2.2.15.vsix\n📄 diff.txt\n📄 diff_utf8.txt\n📄 g1nation-2.2.15.vsix\n📄 g1nation-final-v2.vsix\n📄 g1nation-final-v3.vsix\n📄 g1nation-final.vsix\n📄 g1nation-latest.vsix\n📄 g1nation-new-build.vsix\n📄 LICENSE\n📄 package-lock.json\n📄 package.json\n📄 README.md\n📁 src/\n📄 system_schema.json\n📄 tsconfig.json" + }, + { + "role": "user", + "content": "지금 E:\\Wiki\\ConnectAI 이폴더 분석해줘. 설계적으로, 기능적으로, 사용자 입장에서 개선이 필요하거나 문제가 있거나 최적화가 안된 부분이 있거나 기타 등등.." + }, + { + "role": "assistant", + "content": "\n\n먼저 핵심 파일들을 모두 읽어서 프로젝트 전체를 파악하겠습니다.\n\n\n\n\n\n" + }, + { + "role": "user", + "content": "[시스템: read_file 결과]\n파일: ConnectAI/package.json\n```\n{\n \"name\": \"g1nation\",\n \"displayName\": \"G1nation\",\n \"description\": \"100% local AI coding agent for VS Code. Create files, edit code, run commands, and work offline with Ollama or LM Studio.\",\n \"version\": \"2.2.15\",\n \"publisher\": \"connectailab\",\n \"license\": \"MIT\",\n \"icon\": \"assets/icon.png\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/wonseokjung/connect-ai\"\n },\n \"engines\": {\n \"vscode\": \"^1.80.0\"\n },\n \"categories\": [\n \"Machine Learning\",\n \"Programming Languages\",\n \"Chat\"\n ],\n \"keywords\": [\n \"ai\",\n \"local\",\n \"ollama\",\n \"gemma\",\n \"llama\",\n \"deepseek\",\n \"offline\",\n \"agent\",\n \"code-generation\",\n \"g1nation\",\n \"copilot\"\n ],\n \"activationEvents\": [\n \"*\"\n ],\n \"main\": \"./out/extension.js\",\n \"contributes\": {\n \"commands\": [\n {\n \"command\": \"g1nation.newChat\",\n \"title\": \"G1nation: New Chat\",\n \"icon\": \"$(add)\"\n },\n {\n \"command\": \"g1nation.exportChat\",\n \"title\": \"G1nation: Export Chat as Markdown\"\n },\n {\n \"command\": \"g1nation.explainSelection\",\n \"title\": \"G1nation: Explain Selected Code\"\n },\n {\n \"command\": \"g1nation.focusChat\",\n \"title\": \"G1nation: Focus Chat Input\"\n },\n {\n \"command\": \"g1nation.showBrainNetwork\",\n \"title\": \"G1nation: Show Brain Topology\"\n }\n ],\n \"keybindings\": [\n {\n \"command\": \"g1nation.focusChat\",\n \"key\": \"cmd+l\",\n \"mac\": \"cmd+l\"\n }\n ],\n \"menus\": {\n \"editor/context\": [\n {\n \"command\": \"g1nation.explainSelection\",\n \"when\": \"editorHasSelection\",\n \"group\": \"1_modification\"\n }\n ]\n },\n \"viewsContainers\": {\n \"activitybar\": [\n {\n \"id\": \"g1nation-sidebar\",\n \"title\": \"G1nation\",\n \"icon\": \"$(hubot)\"\n }\n ]\n },\n \"views\": {\n \"g1nation-sidebar\": [\n {\n \"type\": \"webview\",\n \"id\": \"g1nation-v2-view\",\n \"name\": \"Chat\"\n }\n ]\n },\n \"configuration\": {\n \"title\": \"G1nation\",\n \"properties\": {\n \"g1nation.ollamaUrl\": {\n \"type\": \"string\",\n \"default\": \"http://127.0.0.1:11434\",\n \"description\": \"Base URL for Ollama or LM Studio. Default: http://127.0.0.1:11434\"\n },\n \"g1nation.defaultModel\": {\n \"type\": \"string\",\n \"default\": \"gemma4:e2b\",\n \"description\": \"Default model name to use for chat requests.\"\n },\n \"g1nation.requestTimeout\": {\n \"type\": \"number\",\n \"default\": 300,\n \"description\": \"Request timeout in seconds. Default: 300\"\n },\n \"g1nation.localBrainPath\": {\n \"type\": \"string\",\n \"default\": \"\",\n \"description\": \"Folder path for your local Second Brain knowledge base. Leave empty to use the default folder.\"\n },\n \"g1nation.secondBrainRepo\": {\n \"type\": \"string\",\n \"default\": \"\",\n \"description\": \"Optional GitHub repository URL used for Second Brain sync.\"\n },\n \"g1nation.autoPushBrain\": {\n \"type\": \"boolean\",\n \"default\": false,\n \"description\": \"Automatically commit and push Second Brain changes after updates.\"\n }\n }\n }\n },\n \"scripts\": {\n \"vscode:prepublish\": \"npm run compile\",\n \"compile\": \"esbuild src/extension.ts --bundle --platform=node --external:vscode --outfile=out/extension.js\",\n \"watch\": \"tsc -watch -p ./\",\n \"pretest\": \"npm run compile\"\n },\n \"devDependencies\": {\n \"@types/node\": \"18.x\",\n \"@types/vscode\": \"^1.80.0\",\n \"@vercel/ncc\": \"^0.38.4\",\n \"esbuild\": \"^0.28.0\",\n \"typescript\": \"^5.1.3\"\n },\n \"dependencies\": {\n \"axios\": \"^1.15.0\",\n \"jsdom\": \"^29.0.2\"\n }\n}\n\n```" + }, + { + "role": "user", + "content": "[시스템: read_file 결과]\n파일: ConnectAI/tsconfig.json\n```\n{\r\n \"compilerOptions\": {\r\n \"module\": \"commonjs\",\r\n \"target\": \"ES2022\",\r\n \"outDir\": \"out\",\r\n \"lib\": [\"ES2022\"],\r\n \"sourceMap\": true,\r\n \"strict\": true\r\n },\r\n \"exclude\": [\"node_modules\", \".vscode-test\"]\r\n}\r\n\n```" + }, + { + "role": "user", + "content": "[시스템: read_file 결과]\n파일: ConnectAI/README.md\n```\n

\r\n \"Connect\r\n

\r\n\r\n

Connect AI v2 (P-Reinforce)

\r\n\r\n

\r\n 100% Local · 100% Offline · Autonomous Knowledge Engine
\r\n VS Code / Cursor 확장 프로그램으로, 당신의 낡은 IDE를 최상위 에이전트 대학(A.U)의 심장으로 진화시킵니다.\r\n

\r\n\r\n

\r\n \"version\"\r\n \"license\"\r\n \"integration\"\r\n \"engine\"\r\n

\r\n\r\n---\r\n\r\n## 🌟 Overview: The P-Reinforce Architecture\r\n\r\nConnect AI v2.1.30은 단순한 코딩 에이전트를 넘어섭니다. **P-Reinforce 아키텍처**를 기반으로 설계된 이 에이전트는 사용자의 모든 정보와 지시를 받아들여 **스스로 의미를 분석하고, 폴더를 생성하고, 마크다운 위키 파일로 정리하여 클라우드에 자동 백업**하는 자율 지식 정원사(Autonomous Gardener)입니다.\r\n\r\n---\r\n\r\n## ⚡ Core Features\r\n\r\n### 1. 🧠 Agent University (A.U) 완벽 연동\r\nAgent University 웹 플랫폼과 실시간으로 통신합니다. \r\n웹에서 버튼 한 번 누르는 즉시, 로컬 VS Code의 `4825` 포트를 통해 프리미엄 브레인 팩(Premium Brain Pack) 지식이 로컬 인공지능 뇌(`~/.connect-ai-brain`)에 자동 주입되어 신경망을 확장합니다.\r\n\r\n### 2. 📂 자율 지식 구조화 (Zero-Interaction Styling)\r\n유저가 던져주는 원시 데이터(Raw Data)를 에이전트가 스스로 판단해 `10_Wiki`, `00_Raw`, `🚀 Skills` 와 같은 완벽한 P-Reinforce 템플릿 규격의 Markdown 파일로 분할-조립하여 저장합니다.\r\n\r\n### 3. ☁️ 클라우드 동기화 (Auto-Git Sync 100%)\r\n로컬 PC에서 파일 생성이 일어나는 순간, 에이전트가 스스로 GitHub 저장소에 `git add`, `commit`, `push`를 수행합니다. \r\n마스터는 이제 지루한 푸시 커맨드를 입력할 필요가 없습니다.\r\n\r\n### 4. 🔗 설치형 모델 자동 감지 (Dynamic Model Detection)\r\nOllama 또는 LM Studio에 설치된 모델을 내부 API(`v1/models`)를 호출하여 자동 감지하고, UI의 스위치 보드(드롭다운)에 연결합니다. 어떤 모델을 쓸지 번거롭게 입력하지 마십시오.\r\n\r\n---\r\n\r\n## ⚒️ Agent Capabilities (에이전트 권한)\r\n\r\n로컬 머신의 파일 시스템과 터미널에 대한 통제권을 인공지능에게 부여합니다. (100% 안전한 권한 승인 기반)\r\n\r\n| Action | Description |\r\n|:--|:--|\r\n| **📄 Create Files** | 새로운 파일과 폴더를 생성합니다 |\r\n| **✏️ Edit Files** | 기존 파일 내의 코드를 수정합니다 |\r\n| **🗑️ Delete Files** | 불필요한 파일을 즉각 파쇄합니다 |\r\n| **📖 Read Files** | 마스터의 프로젝트 파일을 읽어 맥락을 파악합니다 |\r\n| **📂 Browse Directories** | 디렉토리 구조를 분석합니다 |\r\n| **🖥️ Run Commands** | `npm run build`, `git push` 등 터미널 명령을 수행합니다 |\r\n\r\n---\r\n\r\n## 📥 Installation (설치 방법)\r\n\r\n### A.U 멤버십 유저 (Recommended)\r\n1. 상단 탭의 [Releases](https://github.com/wonseokjung/connect-ai/releases) 메뉴로 진입.\r\n2. 최신 `v2.1.30.vsix` 파일을 다운로드.\r\n3. VS Code 에서 `Cmd+Shift+P` → **Extensions: Install from VSIX** → 다운받은 파일 선택\r\n\r\n### 개발자 빌드 (Build from Source)\r\n```bash\r\ngit clone https://github.com/wonseokjung/connect-ai.git\r\ncd connect-ai\r\nnpm install\r\nnpm run compile\r\nnpx vsce package\r\n```\r\n\r\n---\r\n\r\n## ⚙️ Engine Setup (엔진 설정 방법)\r\n\r\n### ✅ LM Studio (Apple Silicon, Windows) - 권장\r\n1. [lmstudio.ai](https://lmstudio.ai/) 에서 설치\r\n2. Gemma 3, Llama 3 또는 Qwen Coder 등 원하는 모델 로드\r\n3. **Developer 탭(좌측 `<>` 메뉴)** 진입 후 **Start Server** 클릭\r\n4. Connect AI의 ⚙️ 채팅방 설정에서 엔진을 \"LM Studio\"로 선택 (자동 모델 인덱싱 완료)\r\n\r\n### ✅ Ollama (Mac, Linux)\r\n```bash\r\nbrew install ollama\r\nollama pull gemma3 # 원하는 모델 풀링\r\n```\r\nConnect AI에서 설정만 \"Ollama\"로 바꿔주시면 끝납니다.\r\n\r\n---\r\n\r\n## 🔒 Privacy (완벽한 보안)\r\n\r\n- **Zero Cloud API:** 당신의 코드는 외부 클라우드 통신망을 타지 않습니다.\r\n- **Zero Telemetry:** 모든 연산력은 100% Local Inference 환경에서 이루어집니다.\r\n- 기업 보안 등급에 준하는 극강의 밀폐형 로컬 지식망 생성을 보장합니다.\r\n\r\n---\r\n\r\n

\r\n Built for Antigravity & Agent University
\r\n Designed by Jay × Connect AI Architect\r\n

\r\n\n```" + }, + { + "role": "user", + "content": "[시스템: read_file 결과]\n파일: ConnectAI/system_schema.json\n```\n{\r\n \"schema_name\": \"ConnectAI_AgentSystemSchema\",\r\n \"version\": \"1.0.0\",\r\n \"description\": \"A comprehensive JSON schema defining the operational state, capabilities, and configuration of the Connect AI agent.\",\r\n \"agent_identity\": {\r\n \"name\": \"Connect AI\",\r\n \"role\": \"Agentic AI Coding Assistant\",\r\n \"core_principle\": \"100% Local · 100% Offline · 100% Free\"\r\n },\r\n \"environment\": {\r\n \"workspace_path\": \"/Users/jay/로컬테스트/local-ai-coder\",\r\n \"file_system_access\": \"Direct, offline access to the local file system via agent actions.\",\r\n \"context_source\": \"Local workspace files and optional GitHub knowledge base.\"\r\n },\r\n \"agent_capabilities\": [\r\n {\r\n \"action\": \"CREATE_FILE\",\r\n \"description\": \"Generates new files and directories in the workspace.\"\r\n },\r\n {\r\n \"action\": \"EDIT_FILE\",\r\n \"description\": \"Finds and replaces specific code in existing files.\"\r\n },\r\n {\r\n \"action\": \"DELETE_FILE\",\r\n \"description\": \"Removes files and folders.\"\r\n },\r\n {\r\n \"action\": \"READ_FILE\",\r\n \"description\": \"Reads the content of any file in the workspace to understand context.\"\r\n },\r\n {\r\n \"action\": \"LIST_DIRECTORY\",\r\n \"description\": \"Lists contents of a specific subdirectory.\"\r\n },\r\n {\r\n \"action\": \"RUN_TERMINAL_COMMAND\",\r\n \"description\": \"Executes CLI commands (e.g., npm install, node).\"\r\n },\r\n {\r\n \"action\": \"READ_BRAIN\",\r\n \"description\": \"Queries the personal knowledge base (Second Brain) from a linked repository.\"\r\n // Note: Reading URLs is also available as an action if needed.\r\n }\r\n ],\r\n \"configuration\": {\r\n \"engine_options\": {\r\n \"default_model\": \"gemma4:e2b\",\r\n \"ollama_url\": \"http://127.0.0.1:11434\"\r\n },\r\n \"operational_settings\": {\r\n \"temperature\": 0.7,\r\n \"top_p\": 0.9,\r\n \"top_k\": 40,\r\n \"request_timeout_seconds\": 300,\r\n \"max_context_files\": 200\r\n },\r\n \"knowledge_base\": {\r\n \"second_brain_repo_url\": \"\",\r\n \"data_location\": \"~/.connect-ai-brain/\"\r\n }\r\n },\r\n \"workspace_snapshot\": {\r\n \"files_present\": [\r\n \"assets/icon.png\",\r\n \"src/*.ts\",\r\n \"fix_final.py\",\r\n \"README.md\",\r\n \"package.json\",\r\n \"tsconfig.json\"\r\n ],\r\n \"file_count\": 48\r\n }\r\n}\n```" + }, + { + "role": "user", + "content": "지금 E:\\Wiki\\ConnectAI 이폴더 분석해줘. 설계적으로, 기능적으로, 사용자 입장에서 개선이 필요하거나 문제가 있거나 최적화가 안된 부분이 있거나 기타 등등.." + }, + { + "role": "assistant", + "content": "\n\n" + }, + { + "role": "user", + "content": "지금 E:\\Wiki\\ConnectAI 이폴더 분석해줘. 설계적으로, 기능적으로, 사용자 입장에서 개선이 필요하거나 문제가 있거나 최적화가 안된 부분이 있거나 기타 등등.." + } + ], + "stream": true, + "max_tokens": 4096, + "temperature": 0.8, + "top_p": 0.9 +} \ No newline at end of file