chore: update graph view scale and set workspace default tab to graph view

This commit is contained in:
Antigravity Agent
2026-05-08 00:47:14 +09:00
parent 30f124fdb7
commit c8e983afe7
1720 changed files with 9189 additions and 62873 deletions
@@ -1,33 +0,0 @@
# Project Report V11.5: Combat and UI Recovery (2026-04-21)
Skybound 프로젝트의 치명적인 결함을 복구하고 유저 인터페이스를 고도화한 통합 개발 보고서입니다. 🟢 [NOMINAL]
## 1. Combat Engine Recovery (전투 엔진 복구)
현장 QA에서 발견된 핵심 결함들을 즉각 조치하였습니다.
- **Exp-Gems Drop**: 적 처치 시 경험치 보석이 드랍되지 않던 현상을 `CombatSystem.ts` 수정을 통해 해결.
- **Engine Synchronization**: 레벨업 UI에서의 선택 사항이 `useGameEngine.ts`에 즉시 반영되지 않던 채널 장애 복구.
- **Starter Loadout**: 초반 무기 부재 문제를 해결하기 위해 **'Gatling Gun Lv.1'**을 모든 기체에 기본 장착 사양으로 고정.
## 2. UI/UX Innovation (직관성 강화)
유저의 정보 인지 속도를 높이기 위한 시각적 개선 작업을 수행했습니다.
- **Terminology Standardization**: 스토리지의 모호한 약자(A, E)를 **Armor, Engine** 등 명확한 전문 용어로 전면 교체.
- **Acquisition Alerts**: 신규 모듈 획득 시 등급별 고유 색상(Tier-Colored)과 애니메이션이 포함된 알림 노출.
- **New Indicator**: 창고 내 미확인 아이템에 **'NEW'** 뱃지 및 발광(Glow) 효과 적용.
## 3. Infrastructure & Roadmap
- **Git Automation**: 작업 완료 즉시 커밋 및 푸시가 이행되는 자동화 파이프라인 구축.
- **Next Step**: 드론 병합(Merge) 및 아트 리소스 실장(Real-Asset Loading) 작업 예정.
---
**Status**: Critical Recovery Complete
**Reviewer**: AI 개발부장 '코다리' 🫡🐟
**Tags**: #Stability_QA #Dopamine_UX #Core_Logic
## 🔗 Knowledge Connections
### Related Concepts (Auto-Linked)
* [[Innovation]]
* [[Roadmap]]
* [[Terminology]]
* [[_report]]
@@ -1,28 +0,0 @@
# UX and Dopamine Feedback Upgrade (V10.0)
단순한 발사 로직을 넘어, 유저에게 강렬한 피드백을 전달하기 위한 설계 사양입니다.
## 1. Probabilistic Critical Hit (슬롯머신 경험)
- **공식**: `damage *= 1.5 + Math.pow(Math.random(), 3) * 3.5`
- **심리적 효과**: Cubic Power를 사용하여 초고속 데미지가 극도로 희귀하게 발생하게 함으로써, 소위 '잭팟(Jackpot)' 효과 유도.
## 2. Visual Feedback Engine
타격의 세기에 따라 시각적 계층을 분리했습니다.
- **Normal**: 작은 흰색 숫자 출력.
- **Critical**: 대형 황금색 "CRITICAL!" 텍스트 및 `shadowBlur` 이펙트(부유 후 페이드아웃).
## 3. Difficulty Scaling Algorithm
플레이어가 지루함을 느끼지 않도록 시간이 지날수록 난이도를 복리로 상승시킵니다.
- **Factor**: `difficultyMult = 1.0 + (frame / 3600) * 0.1`
- **영향 범위**: 적 생성 쿨다운 감소, 적 HP 상승, 환경 장애물(Asteroids) 보정률 상승.
## 4. Policy: FALCON Streamlining
통계적 밸런싱의 용이성을 위해 현재 주력 기체를 `FALCON`으로 단일화하고 집중 케어합니다.
---
**Status**: Verified High-Dopamine Content
**Category**: Game Design / User Experience
## 🔗 Knowledge Connections
### Related Concepts (Auto-Linked)
* [[Dopamine]]
@@ -1,84 +0,0 @@
# Datacollector NotebookLM Connection Guard and MCP Restart Fix
Date: 2026-04-25 21:02:35 KST
Project: Datacollector
[[Repository|Repository]]: `/Volumes/Data/project/Antigravity/Datacollector`
## Summary
실행 중 NotebookLM 연결 체크가 500 에러를 반환한 뒤에도 미션이 계속 시작되어 Local LM fallback으로 넘어가고, 결국 `Local LM returned an empty or invalid response` 에러가 발생했다.
또한 브리지의 MCP 재시작 로직에서 자동 재시작과 수동 재시작이 겹쳐 여러 `notebooklm-mcp` 프로세스가 남는 문제가 확인되었다.
## Observed Errors
브라우저 콘솔:
```text
:3000/favicon.ico 404 (Not Found)
127.0.0.1:3002/api/check-connection 500 (Internal Server Error)
```
앱 로그:
```text
NotebookLM 연결 실패: 인증 자동 복구 실패...
GENERAL MODE
ENGINE ERROR Local LM returned an empty or invalid response.
```
## Root Causes
1. `testNotebookLmConnection()`이 성공 여부를 반환하지 않았다.
2. `handleStart`, `handleResume`, `handleGlobalResume`이 연결 실패 후에도 그대로 `running` 상태로 넘어갔다.
3. `restart()`가 MCP 프로세스 종료 이벤트를 기다리지 않고 바로 새 프로세스를 띄울 수 있었다.
4. `close` 이벤트의 자동 재시작이 수동 재시작과 겹쳐 MCP 하위 프로세스가 누적될 수 있었다.
5. favicon 파일이 없어서 브라우저가 `/favicon.ico` 기본 요청을 404로 표시했다.
## Changes Made
수정 파일:
- `/Volumes/Data/project/Antigravity/Datacollector/[[Scripts|Scripts]]/mcp_bridge.mjs`
- `/Volumes/Data/project/Antigravity/Datacollector/src/components/AgentDashboard.tsx`
- `/Volumes/Data/project/Antigravity/Datacollector/index.html`
추가 파일:
- `/Volumes/Data/project/Antigravity/Datacollector/public/favicon.svg`
핵심 변경:
- `testNotebookLmConnection()``Promise<boolean>`을 반환하도록 변경
- NotebookLM 연결 실패 시 신규 미션 시작, 개별 재개, 전체 재개를 보류
- 연결 실패 후 Local LM fallback으로 자동 진행되는 흐름 차단
- MCP 프로세스를 종료할 때 `close` 이벤트를 기다리는 `_stopCurrentProcess()` 추가
- 재시작 중 자동 재시작이 중복 실행되지 않도록 제어
- 재시작 테스트 후 MCP 하위 프로세스가 하나만 남는지 확인
- SVG favicon 추가 및 `index.html`에 명시
## Verification
실행한 검증:
```bash
node --check scripts/mcp_bridge.mjs
npm run lint
npm run build
npm run bridge
curl -s http://127.0.0.1:3002/api/health
curl -s -X POST http://127.0.0.1:3002/api/restart
```
검증 결과:
- 브리지 문법 체크 통과
- TypeScript 타입체크 통과
- Vite 빌드 통과
- 브리지 시작 성공
- `/api/health` 응답 정상
- `/api/restart``notebooklm-mcp` 프로세스가 하나만 남는 것 확인
## [[Opera|Opera]]tional Note
현재 실행 중이던 오래된 브리지와 누적된 MCP 하위 프로세스는 종료했다.
앱은 다시 실행해야 새 브리지 로직이 적용된다.
@@ -1,181 +0,0 @@
# Skybound Core Gameplay Rebalance and Purpose Reset
**Date**: 2026-04-25
**Project**: Skybound Protocol
**Author**: Codex
**Status**: Raw corrective gameplay pass after balance regression
## 1. User Playtest Feedback
The previous balance pass made the game worse.
Observed issues:
- TAC Level Up triggered repeatedly and too quickly.
- Campaign and Blitz did not communicate a clear purpose.
- It was unclear whether the player should dodge bullets, collect upgrades, survive waves, or simply idle.
- Standing near the center could clear the stage with little interaction.
- Skill choice did not feel strategic because almost any pickup worked.
- The foundation felt like it had grown without a clear gameplay plan.
## 2. Diagnosis
The previous pass overcorrected toward reward frequency and enemy density.
Main problems:
- initial EXP requirement was too low
- EXP gem values were too high
- level-up carryover allowed too much momentum
- no cooldown existed between TAC Level Up events
- base magnet radius was too generous
- base damage multiplier was too high
- weapon cooldowns became too generous
- enemy caps became too high for the current combat model
- enemies were too weak for the amount of automatic player damage
The result was a reward flood without enough danger, movement, or tactical pressure.
## 3. New Gameplay Purpose
Skybound should not be a pure bullet hell and should not be an idle auto-clear game.
The intended player loop should be:
1. Survive incoming enemy formations and hazard pressure.
2. Move deliberately to collect EXP gems and supply rewards.
3. Choose upgrades that solve the current pressure pattern.
4. Build toward synergies and evolutions.
5. Enter boss or spike phases with a build that feels earned.
The main fun should come from:
- movement under pressure
- risk-reward EXP collection
- tactical skill choices
- visible power growth
- stage pressure that asks for different answers
The player should not be able to win reliably by standing still.
## 4. Corrective Fixes Applied
### TAC Level Up Flood Control
Applied:
- initial required EXP increased from `45` to `90`
- normal enemy EXP reduced from `7` to `4`
- elite EXP reduced from `32` to `20`
- level-up multiplier increased to `1.42 / 1.48 / 1.55 / 1.62`
- added a `360 frame` TAC Level Up lockout after each level-up
- EXP carryover is capped to `35%` of the next requirement
Expected result:
- level-up moments become meaningful beats
- no rapid-fire modal spam
- players must keep playing between upgrades
### Movement Incentive
Applied:
- base magnet radius reduced from `180` to `90`
- magnet passive now adds `35` per level instead of `60`
Expected result:
- EXP collection requires movement
- standing still misses more progression
- magnet becomes a strategic comfort/passive choice rather than free global collection
### Idle-Clear Reduction
Applied:
- base effective damage reduced from `1.5` to `1.0`
- damage passive now provides growth from deliberate investment
- several weapon cooldowns were pulled back from the previous overly generous pass
- Nova Burst was returned closer to a periodic tactical tool rather than constant auto-clear
Expected result:
- early weapons no longer erase all pressure automatically
- skill investment matters more
- AoE tools help but do not replace positioning
### Enemy Pressure Recentered
Applied:
- hard enemy cap reduced from `90` to `56`
- phase caps reduced from the previous overcorrection
- enemy HP increased from the previous too-low values
- enemies enter deeper into the playfield
- enemy speed and bullet pressure were slightly restored
- procedural spawn cadence reduced from the flood state
Expected result:
- fewer meaningless bodies
- enemies apply actual positional pressure
- player must dodge, reposition, and collect intentionally
## 5. Design Rule Going Forward
Future balance changes should follow this rule:
Do not increase rewards unless a matching risk or movement requirement exists.
Examples:
- faster level-up needs harder collection or less carryover
- more enemies need weaker auto-clear or stronger enemy pathing
- stronger skills need clearer spike counters or enemy behaviors
- more pickups need better pickup affordance and danger around pickup zones
## 6. Changed Runtime Paths
Important changed paths:
- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/store/useGameStore.ts`
- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/types.ts`
- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/ProgressionSystem.ts`
- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/CombatSystem.ts`
- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/SpawnerSystem.ts`
- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/config/CombatTimeline.ts`
- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/config/balance.ts`
- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/config/weaponBehaviors.ts`
- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/ModularWeaponSystem.ts`
## 7. Verification
Production build completed successfully with:
```bash
npm run build
```
The existing `/sprites/player.png` static asset warning remains non-blocking.
## 8. Next Necessary Design Work
This corrective patch stabilizes the worst problems, but the project still needs a stronger core design pass.
Recommended next work:
- define Campaign as objective-based stages with unique pressure patterns
- define Blitz as score/survival mode with explicit risk-reward scoring
- add clear stage objectives to HUD
- add enemy archetypes that force movement differently
- add pickup-risk zones so rewards are not free
- review every skill for role identity: damage, crowd control, defense, mobility, economy
## 🔗 Knowledge Connections
### Related Concepts (Auto-Linked)
* [[Affordance]]
* [[Blocking]]
* [[Events]]
* [[Purpose]]
* [[State]]
@@ -1,109 +0,0 @@
# Skybound Tac EXP Direct Kill and UI Productization Pass
작성일: 2026-04-25 10:01 KST
## 요청 요약
- Tac Level 경험치는 적기를 처치했을 때 바로 획득하게 한다.
- 바닥에 경험치 파티클/젬이 떨어져 화면을 어지럽히지 않게 한다.
- 너무 빠른 레벨업으로 난이도 밸런스가 무너지는 문제를 완화한다.
- Hangar, HUD, Tac Level Up 등 아직 남아 있는 예전 UI 톤을 Stylized Casual Magitech 톤앤매너에 맞게 통일한다.
- `THRUST_OUTPUT`처럼 작동하지 않거나 내부 시스템 문자열처럼 보이는 UI 문구를 상품성 있게 정리한다.
## 확인한 문제
### Tac EXP
- `CombatSystem`이 적 사망 시 `spawnExpGem()`을 호출해 바닥에 경험치 젬을 생성하고 있었다.
- `ProgressionSystem`은 바닥 젬의 이동, 자석 흡수, 수집을 통해 경험치를 지급했다.
- 적 밀도가 올라갈수록 젬이 많이 쌓이고, 화면 가독성과 레벨업 속도 모두 불안정해질 수 있었다.
- 기존 젬 값은 일반몹/엘리트몹 기준으로 레벨업을 빠르게 밀어 올리는 구조였다.
### HUD 문구
- `SYSTEM_ACTIVE`, `TAC_LEVEL`, `HIGH_SCORE_SYNC`, `COMBO_LINK`, `ENERGY_CELL`, `LOCK_ON`, `HEAT_SIG`, `SHIELD_OS`, `THRUST_OUTPUT` 같은 내부 변수명 스타일 문구가 사용자에게 그대로 노출되고 있었다.
- `THRUST_OUTPUT``dodgeCooldownPct`를 읽지만 엔진에서 값을 갱신하지 않아 실질적으로 반응하지 않는 상태였다.
### Hangar UI
- 장비 카드가 빈 박스처럼 보이며 아이템명/레벨/스탯 정보가 충분히 드러나지 않았다.
- 탭 이름과 슬롯 이름이 기능적이지만 상품 화면처럼 자연스럽지는 않았다.
- 전체 스타일이 이전의 얇은 선, 어두운 반투명 박스 중심이라 현재 게임의 굵은 외곽선/밝은 마법 액센트 톤과 어긋났다.
## 적용한 변경
### Tac EXP 직접 지급
- `CombatSystem`에서 적 사망 시 더 이상 `spawnExpGem()`을 호출하지 않는다.
- 대신 `ctx.grantTacExp()`를 통해 처치 즉시 경험치를 지급한다.
- 일반 적: `+1 TAC`
- 엘리트 적: `+5 TAC`
- 미드 보스: `+16 TAC`
- 엘리트 이상만 짧은 `+TAC` 텍스트 피드백을 표시해 화면 노이즈를 줄였다.
- 바닥 경험치 젬은 신규 생성되지 않으므로, 플레이 중 먹을 수 없는 파란 점/구슬이 쌓이는 문제가 사라진다.
### 레벨업 속도 완화
- `ProgressionSystem.grantExp()`를 추가해 직접 경험치 지급과 기존 젬 수집 지급을 한 곳에서 처리한다.
- Spike 전 EXP 부스트는 최대 `x1.25`로 제한했다.
- 기존 레벨업 lockout과 carryover cap은 유지해 연속 레벨업 폭주를 방지한다.
### HUD 상품성 개선
- `HIGH_SCORE_SYNC``Best Run`
- `SYSTEM_ACTIVE``Falcon Online`
- `TAC_LEVEL``Tactical Level`
- `THRUST_OUTPUT``Afterburner`
- `ENERGY_CELL``Hull Core`
- `COMBO_LINK``Chain Bonus`
- `LOCK_ON``Lock-On`
- `HEAT_SIG``Heat Trace`
- `SHIELD_OS``Guard Field`
- 페이즈 표시도 `BOSS_WARNING` 같은 내부 enum 대신 `Boss Incoming`, `Horde Surge`, `Route Secured` 같은 플레이어용 문구로 매핑했다.
- 엔진에서 `setDodgeCooldownPct()`를 실제 dodge 상태에 맞게 갱신해 Afterburner 게이지가 부스트 중 반응하도록 연결했다.
### Hangar UI 톤 통일
- Hangar 배경과 패널을 Stylized Casual Magitech 톤으로 보강했다.
- 굵은 네이비 외곽선, 청록/민트/골드 마법 액센트, 둥근 카드, 명확한 hover 피드백을 적용했다.
- 장비 카드에 아이템 타입, 이름, 레벨, ATK, HP가 보이도록 개선했다.
- 탭 이름을 `LOADOUT`, `SYNTHESIS`, `SALVAGE`, `ASTRAL FORGE`, `UPGRADES` 등 더 자연스러운 메뉴명으로 바꿨다.
- 빈 슬롯 문구를 `NO MODULE`에서 `Available mount`로 바꿨다.
- `SYSTEM MOUNTS`, `MODULE STORAGE`를 각각 `Mount Bays`, `Module Storage`로 정리했다.
### Level Up 모달 문구 개선
- `TAC LV`, `TAC LEVEL UP!`, `SELECT TACTICAL ENHANCEMENT` 중심의 시스템 문자열 느낌을 줄였다.
- 일반 레벨업: `Tactical Upgrade`
- 시작 선택: `Choose First Weapon`
- 보급 선택: `Emergency Supply`
- 카드 문구도 `NEW ACQUISITION`에서 `New module`로 완화했다.
## 수정 파일
- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/CombatSystem.ts`
- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/ProgressionSystem.ts`
- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/types.ts`
- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/hooks/useGameEngine.ts`
- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/ui/HUDOverlay.tsx`
- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/ui/HangarOverlay.tsx`
- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/ui/HangarOverlay.css`
- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/ui/LevelUpModal.tsx`
## 검증
- `npm run build` 성공
- Vite 경고: `/sprites/player.png referenced in /sprites/player.png didn't resolve at build time`
- 위 경고는 기존 런타임 경로 경고이며 이번 변경으로 인한 빌드 실패는 아니다.
- 주요 내부 문자열 검색 결과, 요청에서 지적된 `SYSTEM_ACTIVE`, `THRUST_OUTPUT`, `TAC_LEVEL`, `HIGH_SCORE_SYNC`, `COMBO_LINK`, `ENERGY_CELL`, `LOCK_ON`, `HEAT_SIG`, `SHIELD_OS`는 현재 게임 UI 코드에서 제거되었다.
## 후속 플레이테스트 포인트
- 적 처치 후 바닥에 경험치 젬이 신규로 생성되지 않는지 확인한다.
- 일반몹을 많이 잡아도 Tac Level이 연속 폭주하지 않는지 확인한다.
- Afterburner 게이지가 회피/부스트 중 시각적으로 반응하는지 확인한다.
- Hangar 장비 카드가 더 이상 빈 회색 박스처럼 보이지 않고 아이템 정보를 명확히 보여주는지 확인한다.
## 🔗 Knowledge Connections
### Related Concepts (Auto-Linked)
* [[Storage]]