# Ai_Operating v1.0.0 v1 Freeze - Project: Slashborne - Phase: 109 - Version: 10.9.4 - Generated: 2026-05-11T05:59:32+00:00 - Checklist: 8 passed / 0 warnings / 0 failed ## v1 기능 범위 - /workspace 기반 Project Dev Loop - 실제 Claude subprocess 실행 - Task/Result 원문 Viewer - Artifact 원문 Viewer - Approval 기반 파일 수정 - Git/Unreal verifier task 큐잉 - Memory 저장/주입 Preview - Discord/Web output parity hash - 운영 안정화 점검 ## v1 제외 범위 - Unreal Editor 자동 빌드/패키징 - Git commit/push/PR 자동화 - 다중 사용자 권한 시스템 - Discord 실제 전송 강제 ## Checklist - [passed] /workspace MVP 표시/탭/결과 보기 — Phase 103-106.5 확인 완료 - [passed] Artifact 클릭 원문 보기 — {'artifacts': 345} - [passed] Discord/Web 동일 원문 hash — {'parity': {'parity_id': 'par_9c120fe83fa1', 'project_id': 'Slashborne', 'task_id': 'task_92cd1113ae29', 'status': 'passed', 'source_type': 'task', 'source_id': 'task_92cd1113ae29', 'web_chars': 7534, 'discord_chars': 1971, 'content_hash': '0c22e4ecb3271c6f343935e35b93cf731b5776b6b491e99de21664667779c6dd', 'result_json': '{}', 'created_at': '2026-05-11T05:59:32+00:00', 'updated_at': '2026-05-11T05:59:32+00:00', 'artifact_id': '', 'discord_preview': 'git 상태와 코드 조사 결과를 바탕으로 작업을 한 건 선정합니다. 외부 ai-proto MCP는 호출하지 않고, 파일은 직접 수정하지 않습니다.\n\n---\n\n## 결론\n\n선정 작업: **Lvl_TopDown에서 플레이어 캐릭터가 보이지 않는 문제 해결** (CLAUDE.md 우선 과제 #1).\n원인 가설은 둘이며, 두 가지를 **하나의 patch proposal**로 함께 정리합니다.\n\n---\n\n## 1. 현재 상태 판단\n\n1. 프로젝트는 UE 5.7, 모듈 1개(`Slashborne`), 초기 커밋(`0b99d2a`) 한 개. 작업 트리 변경 없음(`?? .ai_operating/`만).\n2. 기본 맵: `Content/TopDown/Lvl_TopDown.umap`, 기본 GameMode: `SBTestGameMode`.\n3. `Config/DefaultEngine.ini`에서 `r.Substrate=True` 활성. → 레거시 BasicShape 머티리얼의 `EmissiveColor` 파라미터 노출이 보장되지 않음.\n4. `Source/Slashborne/SlashborneCharacter.cpp`의 `ProtoVisual` 설정:\n - `/Engine/BasicShapes/Cylinder` 로딩, `SetRelativeScale3D(0.84, 0.84, 1.92)`.\n - **`SetRelativeLocation` 미설정** → 엔진 기본 Cylinder 원점이 바닥 기준이라 캡슐(HalfHeight=96) 중심에서 위로 192unit 솟음. 발은 공중, 머리는 캡슐 상단 훨씬 위.\n - `BeginPlay`에서 `CreateAndSetMaterialInstanceDynamic(0)` 후 `Color`/`BaseColor`/`EmissiveColor`에 값 주입. 기본 머티리얼이 해당 파라미터를 노출하지 않으면 무음 실패(no-op) → Substrate + 라이트 없는 씬에서 검정/투명으로 보일 수 있음.\n5. 이동·카메라(`CameraBoom`: 1200 길이, -55° pitch, AbsoluteRotation) 자체는 정상이라고 보고됨. 따라서 캐릭터 클래스 비주얼 파이프라인이 핵심.\n\n판단: **(a) 메시 위치 오프셋 누락 + (b) Substrate 환경에서 머티리얼 파라미터 노출 실패**의 복합 가능성. 둘 다 한 번에 해결하는 것이 안전.\n\n---\n\n## 2. 다음 작업 계획\n\n순서:\n1. (leader) 본 문서로 patch 범위·검증 지표 합의.\n2. (builder) 아래 **Approval Proposal #1**을 적용 — `SlashborneCharacter.cpp` 1개 파일만 수정.\n3. (verifier) 윈도우 셸에서 빌드 → 에디터 PIE에서 캐릭터 가시성·발 위치·이동 회귀 확인.\n4. (archivist) 결과를 `Ai_Operating` 워크스페이스 Project Memory에만 기록(외부 MCP 호출 금지).\n\n작업 단위는 1개 파일·약 30라인 이내. 빌드 실패/회귀 시 단일 커밋 되돌리기로 즉시 복구 가능.\n\n---\n\n## 3. Approval Proposal #1 — Player ProtoVisual 가시성 픽스\n\n- **target_path**: `C:\\Works\\Slashborne\\Source\\Slashborne\\SlashborneCharacter.cpp`\n- **목적**: Substrate 환경 + 빈 씬에서도 플레이어 캡슐 위치에 정확히 정렬된, 항상 보이는 임시 비주얼 보장.\n- **변경 요약**:\n 1. Constructor에서 ProtoVisual에 `SetRelativeLocation(FVector(0.f, 0.f, -96.f))` 추가 → 캡슐 바닥 정렬.\n 2. Constructor에서 보조 머티리얼(`/Engine/EngineMaterials/Emiss\n\n...[truncated for Discord preview; full answer is in Web/Artifact]...', 'metadata_json': '{"title": "Ai_Operating Slashborne result", "content": "git 상태와 코드 조사 결과를 바탕으로 작업을 한 건 선정합니다. 외부 ai-proto MCP는 호출하지 않고, 파일은 직접 수정하지 않습니다.\\n\\n---\\n\\n## 결론\\n\\n선정 작업: **Lvl_TopDown에서 플레이어 캐릭터가 보이지 않는 문제 해결** (CLAUDE.md 우선 과제 #1).\\n원인 가설은 둘이며, 두 가지를 **하나의 patch proposal**로 함께 정리합니다.\\n\\n---\\n\\n## 1. 현재 상태 판단\\n\\n1. 프로젝트는 UE 5.7, 모듈 1개(`Slashborne`), 초기 커밋(`0b99d2a`) 한 개. 작업 트리 변경 없음(`?? .ai_operating/`만).\\n2. 기본 맵: `Content/TopDown/Lvl_TopDown.umap`, 기본 GameMode: `SBTestGameMode`.\\n3. `Config/DefaultEngine.ini`에서 `r.Substrate=True` 활성. → 레거시 BasicShape 머티리얼의 `EmissiveColor` 파라미터 노출이 보장되지 않음.\\n4. `Source/Slashborne/SlashborneCharacter.cpp`의 `ProtoVisual` 설정:\\n - `/Engine/BasicShapes/Cylinder` 로딩, `SetRelativeScale3D(0.84, 0.84, 1.92)`.\\n - **`SetRelativeLocation` 미설정** → 엔진 기본 Cylinder 원점이 바닥 기준이라 캡슐(HalfHeight=96) 중심에서 위로 192unit 솟음. 발은 공중, 머리는 캡슐 상단 훨씬 위.\\n - `BeginPlay`에서 `CreateAndSetMaterialInstanceDynamic(0)` 후 `Color`/`BaseColor`/`EmissiveColor`에 값 주입. 기본 머티리얼이 해당 파라미터를 노출하지 않으면 무음 실패(no-op) → Substrate + 라이트 없는 씬에서 검정/투명으로 보일 수 있음.\\n5. 이동·카메라(`CameraBoom`: 1200 길이, -55° pitch, AbsoluteRotation) 자체는 정상이라고 보고됨. 따라서 캐릭터 클래스 비주얼 파이프라인이 핵심.\\n\\n판단: **(a) 메시 위치 오프셋 누락 + (b) Substrate 환경에서 머티리얼 파라미터 노출 실패**의 복합 가능성. 둘 다 한 번에 해결하는 것이 안전.\\n\\n---\\n\\n## 2. 다음 작업 계획\\n\\n순서:\\n1. (leader) 본 문서로 patch 범위·검증 지표 합의.\\n2. (builder) 아래 **Approval Proposal #1**을 적용 — `SlashborneCharacter.cpp` 1개 파일만 수정.\\n3. (verifier) 윈도우 셸에서 빌드 → 에디터 PIE에서 캐릭터 가시성·발 위치·이동 회귀 확인.\\n4. (archivist) 결과를 `Ai_Operating` 워크스페이스 Project Memory에만 기록(외부 MCP 호출 금지).\\n\\n작업 단위는 1개 파일·약 30라인 이내. 빌드 실패/회귀 시 단일 커밋 되돌리기로 즉시 복구 가능.\\n\\n---\\n\\n## 3. Approval Proposal #1 — Player ProtoVisual 가시성 픽스\\n\\n- **target_path**: `C:\\\\Works\\\\Slashborne\\\\Source\\\\Slashborne\\\\SlashborneCharacter.cpp`\\n- **목적**: Substrate 환경 + 빈 씬에서도 플레이어 캡슐 위치에 정확히 정렬된, 항상 보이는 임시 비주얼 보장.\\n- **변경 요약**:\\n 1. Constructor에서 ProtoVisual에 `SetRelativeLocation(FVector(0.f, 0.f, -96.f))` 추가 → 캡슐 바닥 정렬.\\n 2. Constructor에서 보조 머티리얼(`/Engine/EngineMaterials/Emiss\\n\\n...[truncated for Discord preview; full answer is in Web/Artifact]...", "full_chars": 7534, "preview_chars": 1971, "truncated": true, "full_content_hash": "0c22e4ecb3271c6f343935e35b93cf731b5776b6b491e99de21664667779c6dd", "source_type": "task", "source_id": "task_92cd1113ae29", "task_id": "task_92cd1113ae29", "artifact_id": "", "real_cli_source": true, "is_mock": false, "execution_mode": "subprocess", "return_code": 0, "selection_reason": "explicit source", "release_quality": true}'}, 'metadata': {'title': 'Ai_Operating Slashborne result', 'content': 'git 상태와 코드 조사 결과를 바탕으로 작업을 한 건 선정합니다. 외부 ai-proto MCP는 호출하지 않고, 파일은 직접 수정하지 않습니다.\n\n---\n\n## 결론\n\n선정 작업: **Lvl_TopDown에서 플레이어 캐릭터가 보이지 않는 문제 해결** (CLAUDE.md 우선 과제 #1).\n원인 가설은 둘이며, 두 가지를 **하나의 patch proposal**로 함께 정리합니다.\n\n---\n\n## 1. 현재 상태 판단\n\n1. 프로젝트는 UE 5.7, 모듈 1개(`Slashborne`), 초기 커밋(`0b99d2a`) 한 개. 작업 트리 변경 없음(`?? .ai_operating/`만).\n2. 기본 맵: `Content/TopDown/Lvl_TopDown.umap`, 기본 GameMode: `SBTestGameMode`.\n3. `Config/DefaultEngine.ini`에서 `r.Substrate=True` 활성. → 레거시 BasicShape 머티리얼의 `EmissiveColor` 파라미터 노출이 보장되지 않음.\n4. `Source/Slashborne/SlashborneCharacter.cpp`의 `ProtoVisual` 설정:\n - `/Engine/BasicShapes/Cylinder` 로딩, `SetRelativeScale3D(0.84, 0.84, 1.92)`.\n - **`SetRelativeLocation` 미설정** → 엔진 기본 Cylinder 원점이 바닥 기준이라 캡슐(HalfHeight=96) 중심에서 위로 192unit 솟음. 발은 공중, 머리는 캡슐 상단 훨씬 위.\n - `BeginPlay`에서 `CreateAndSetMaterialInstanceDynamic(0)` 후 `Color`/`BaseColor`/`EmissiveColor`에 값 주입. 기본 머티리얼이 해당 파라미터를 노출하지 않으면 무음 실패(no-op) → Substrate + 라이트 없는 씬에서 검정/투명으로 보일 수 있음.\n5. 이동·카메라(`CameraBoom`: 1200 길이, -55° pitch, AbsoluteRotation) 자체는 정상이라고 보고됨. 따라서 캐릭터 클래스 비주얼 파이프라인이 핵심.\n\n판단: **(a) 메시 위치 오프셋 누락 + (b) Substrate 환경에서 머티리얼 파라미터 노출 실패**의 복합 가능성. 둘 다 한 번에 해결하는 것이 안전.\n\n---\n\n## 2. 다음 작업 계획\n\n순서:\n1. (leader) 본 문서로 patch 범위·검증 지표 합의.\n2. (builder) 아래 **Approval Proposal #1**을 적용 — `SlashborneCharacter.cpp` 1개 파일만 수정.\n3. (verifier) 윈도우 셸에서 빌드 → 에디터 PIE에서 캐릭터 가시성·발 위치·이동 회귀 확인.\n4. (archivist) 결과를 `Ai_Operating` 워크스페이스 Project Memory에만 기록(외부 MCP 호출 금지).\n\n작업 단위는 1개 파일·약 30라인 이내. 빌드 실패/회귀 시 단일 커밋 되돌리기로 즉시 복구 가능.\n\n---\n\n## 3. Approval Proposal #1 — Player ProtoVisual 가시성 픽스\n\n- **target_path**: `C:\\Works\\Slashborne\\Source\\Slashborne\\SlashborneCharacter.cpp`\n- **목적**: Substrate 환경 + 빈 씬에서도 플레이어 캡슐 위치에 정확히 정렬된, 항상 보이는 임시 비주얼 보장.\n- **변경 요약**:\n 1. Constructor에서 ProtoVisual에 `SetRelativeLocation(FVector(0.f, 0.f, -96.f))` 추가 → 캡슐 바닥 정렬.\n 2. Constructor에서 보조 머티리얼(`/Engine/EngineMaterials/Emiss\n\n...[truncated for Discord preview; full answer is in Web/Artifact]...', 'full_chars': 7534, 'preview_chars': 1971, 'truncated': True, 'full_content_hash': '0c22e4ecb3271c6f343935e35b93cf731b5776b6b491e99de21664667779c6dd', 'source_type': 'task', 'source_id': 'task_92cd1113ae29', 'task_id': 'task_92cd1113ae29', 'artifact_id': '', 'real_cli_source': True, 'is_mock': False, 'execution_mode': 'subprocess', 'return_code': 0, 'selection_reason': 'explicit source', 'release_quality': True}, 'rule': 'latest subprocess return_code=0 non-mock answer only'} - [passed] Mock/Smoke 결과는 Release parity 기준에서 제외 — {'title': 'Ai_Operating Slashborne result', 'content': 'git 상태와 코드 조사 결과를 바탕으로 작업을 한 건 선정합니다. 외부 ai-proto MCP는 호출하지 않고, 파일은 직접 수정하지 않습니다.\n\n---\n\n## 결론\n\n선정 작업: **Lvl_TopDown에서 플레이어 캐릭터가 보이지 않는 문제 해결** (CLAUDE.md 우선 과제 #1).\n원인 가설은 둘이며, 두 가지를 **하나의 patch proposal**로 함께 정리합니다.\n\n---\n\n## 1. 현재 상태 판단\n\n1. 프로젝트는 UE 5.7, 모듈 1개(`Slashborne`), 초기 커밋(`0b99d2a`) 한 개. 작업 트리 변경 없음(`?? .ai_operating/`만).\n2. 기본 맵: `Content/TopDown/Lvl_TopDown.umap`, 기본 GameMode: `SBTestGameMode`.\n3. `Config/DefaultEngine.ini`에서 `r.Substrate=True` 활성. → 레거시 BasicShape 머티리얼의 `EmissiveColor` 파라미터 노출이 보장되지 않음.\n4. `Source/Slashborne/SlashborneCharacter.cpp`의 `ProtoVisual` 설정:\n - `/Engine/BasicShapes/Cylinder` 로딩, `SetRelativeScale3D(0.84, 0.84, 1.92)`.\n - **`SetRelativeLocation` 미설정** → 엔진 기본 Cylinder 원점이 바닥 기준이라 캡슐(HalfHeight=96) 중심에서 위로 192unit 솟음. 발은 공중, 머리는 캡슐 상단 훨씬 위.\n - `BeginPlay`에서 `CreateAndSetMaterialInstanceDynamic(0)` 후 `Color`/`BaseColor`/`EmissiveColor`에 값 주입. 기본 머티리얼이 해당 파라미터를 노출하지 않으면 무음 실패(no-op) → Substrate + 라이트 없는 씬에서 검정/투명으로 보일 수 있음.\n5. 이동·카메라(`CameraBoom`: 1200 길이, -55° pitch, AbsoluteRotation) 자체는 정상이라고 보고됨. 따라서 캐릭터 클래스 비주얼 파이프라인이 핵심.\n\n판단: **(a) 메시 위치 오프셋 누락 + (b) Substrate 환경에서 머티리얼 파라미터 노출 실패**의 복합 가능성. 둘 다 한 번에 해결하는 것이 안전.\n\n---\n\n## 2. 다음 작업 계획\n\n순서:\n1. (leader) 본 문서로 patch 범위·검증 지표 합의.\n2. (builder) 아래 **Approval Proposal #1**을 적용 — `SlashborneCharacter.cpp` 1개 파일만 수정.\n3. (verifier) 윈도우 셸에서 빌드 → 에디터 PIE에서 캐릭터 가시성·발 위치·이동 회귀 확인.\n4. (archivist) 결과를 `Ai_Operating` 워크스페이스 Project Memory에만 기록(외부 MCP 호출 금지).\n\n작업 단위는 1개 파일·약 30라인 이내. 빌드 실패/회귀 시 단일 커밋 되돌리기로 즉시 복구 가능.\n\n---\n\n## 3. Approval Proposal #1 — Player ProtoVisual 가시성 픽스\n\n- **target_path**: `C:\\Works\\Slashborne\\Source\\Slashborne\\SlashborneCharacter.cpp`\n- **목적**: Substrate 환경 + 빈 씬에서도 플레이어 캡슐 위치에 정확히 정렬된, 항상 보이는 임시 비주얼 보장.\n- **변경 요약**:\n 1. Constructor에서 ProtoVisual에 `SetRelativeLocation(FVector(0.f, 0.f, -96.f))` 추가 → 캡슐 바닥 정렬.\n 2. Constructor에서 보조 머티리얼(`/Engine/EngineMaterials/Emiss\n\n...[truncated for Discord preview; full answer is in Web/Artifact]...', 'full_chars': 7534, 'preview_chars': 1971, 'truncated': True, 'full_content_hash': '0c22e4ecb3271c6f343935e35b93cf731b5776b6b491e99de21664667779c6dd', 'source_type': 'task', 'source_id': 'task_92cd1113ae29', 'task_id': 'task_92cd1113ae29', 'artifact_id': '', 'real_cli_source': True, 'is_mock': False, 'execution_mode': 'subprocess', 'return_code': 0, 'selection_reason': 'explicit source', 'release_quality': True} - [passed] 운영 안정화 점검 — {'score': 100, 'recommendations': ['과거 failed task는 기본 목록에서는 필터링하고, Ops 탭에서만 감사 이력으로 유지하세요.'], 'failed_summary': {'recent_failed_24h': 0, 'historical_failed': 25, 'total_failed': 25}, 'pending_approvals': 0} - [passed] 작업 이력 존재 — {'tasks': 157} - [passed] 파일 쓰기 승인 루프 유지 — approval 후 fs_write_file만 실제 수정 - [passed] Git commit/push 자동 실행 없음 — v1 scope outside